接触安全也快两个月了,学了很多安全的知识,也接触到了渗透测试,前面学习了sql注入和XSS漏洞,听郭老师说可以尝试自己搭建一个靶场,所以开始制作自己靶场!

目录

一、数据库

文件db-creds.inc

接下来创建数据库

连接数据库

二、前端

三、php

四、第二个页面

五、效果展示


一、数据库

文件db-creds.inc

<?php
$dbuser ='root';
$dbpass ='root';
$dbname ="Chen_D";
$host = '127.0.0.1';
?>

接下来创建数据库

文件setup-db.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>配置数据库</title>
</head><body bgcolor="#000000"><div style=" margin-top:20px;color:#03C631; font-size:24px; text-align:center">
欢迎来战&nbsp;&nbsp;&nbsp;
<font color="#03C631"> 小黑客 </font>
<br>
</div><div style=" margin-top:10px;color:#FFF; font-size:23px; text-align:center">
<font size="3" color="#03C631">
正在配置数据库
<br><br> <?php
include("../sql-connect/db-creds.inc");
$con = mysql_connect($host,$dbuser,$dbpass);
if (!$con){die('数据库连接失败 ' . mysql_error());}$sql="DROP DATABASE IF EXISTS Chen_D";if (mysql_query($sql)){echo "[*]...................Chen_D数据库存在,正在删除"; echo "<br><br>\n";}else {echo "[*]...................数据库操作失败: " . mysql_error(); echo "<br><br>\n";}$sql="CREATE database `Chen_D` CHARACTER SET `gbk` ";if (mysql_query($sql)){echo "[*]...................成功创建Chen_D数据库";echo "<br><br>\n";}else {echo "[*]...................数据库创建失败 " . mysql_error();echo "<br><br>\n";}//creating table users
$sql="CREATE TABLE Chen_D.users (id int(3) NOT NULL AUTO_INCREMENT, username varchar(20) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (id))";if (mysql_query($sql)){echo "[*]...................成功创建表users";echo "<br><br>\n";}else {echo "[*]...................创建表失败 " . mysql_error();echo "<br><br>\n";}//creating table emails
$sql="CREATE TABLE Chen_D.email(id int(3)NOT NULL AUTO_INCREMENT,email varchar(30) NOT NULL,PRIMARY KEY (id))";if (mysql_query($sql)){echo "[*]...................成功创建表email"; echo "<br><br>\n";}else {echo "[*]...................创建表失败 " . mysql_error();echo "<br><br>\n";}//inserting data
$sql="INSERT INTO Chen_D.users (id, username, password) VALUES ('1', 'admin', 'admin')";if (mysql_query($sql)){echo "[*]...................插入数据成功";echo "<br><br>\n";}else {echo "[*]...................插入数据失败 " . mysql_error();echo "<br><br>\n";}
$sql="INSERT INTO `Chen_D`.`email` (id, email) VALUES ('1', 'ZmxhZ3tDaGVuX0R2ZXJ5c2h1YWl9')";if (mysql_query($sql)){echo "[*]...................插入数据成功";echo "<br><br>\n";}else {echo "[*]...................插入数据失败 " . mysql_error();echo "<br><br>\n";}?></font>
</div>
</body>
</html>

就是动态建立数据库和插入内容啦

运行效果

看过sql-labs源码的同学可以看出来我是直接改的它的源代码,不过这个自己写难度也不算大

连接数据库

<?php//including the Mysql connect parameters.
include("../sql-connect/db-creds.inc");
@error_reporting(0);
@$con = mysql_connect($host,$dbuser,$dbpass);
// Check connection
if (!$con)
{echo "Failed to connect to MySQL: " . mysql_error();
}@mysql_select_db($dbname,$con) or die ( "Unable to connect to the database: $dbname");$sql_connect = "SQL Connect included";?>

这个就直接照搬了,没有改的必要,数据库到此就部署完毕了

二、前端

<!DOCTYPE html>
<html>
<head><title>登录!</title><meta charset="utf-8"><link href="css/style.css" rel='stylesheet' type='text/css' /><meta name="viewport" content="width=device-width, initial-scale=1"><script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>
</head>
<body><!-----start-main----><div class="main"><div class="login-form"><h1>我猜你不知道密码</h1><div class="head"><img src="data:images/user.png" alt=""/></div><form><input type="text" name="uname" class="text" value="USERNAME"><input type="password" name="passwd" value="Password"><div class="submit"><input type="submit" value="LOGIN" ></div><p style="font-size:15px;color:red;display: none;" id="error" >账号或密码错误</p><p><a href="#">忘记密码了吧</a></p></form></div></div>

三、php

<?php
include("../sql-connect/sql-connect.php");
error_reporting(0);
if(isset($_GET['uname']) && isset($_GET['passwd']))
{$uname = $_GET['uname'];$passwd =$_GET['passwd'];$sql="SELECT  users.username, users.password FROM users WHERE users.username='$uname' and users.password='$passwd' ORDER BY users.id DESC LIMIT 0,1";$result1 = mysql_query($sql);$row1 = mysql_fetch_array($result1);if($row1){session_start();$_SESSION['flag']="bGVzc18x";echo '<script>alert("登陆成功")</script>';echo '<meta http-equiv="refresh" content="0; URL=\'email.php\'" />';$sql="Update `Chen_D`.`email` set email='ZmxhZ3toaWFzdWRoaWF1c2R9' where id=1";mysql_query($sql);}else{echo "</br>";         echo "</br>";echo "</br>";          echo "</br>";echo "</br>";          echo "</br>";echo "</br>";          echo "</br>";echo '<font color= "#0000ff" font size="3">';            echo "<script>document.getElementById('error').style.display=''</script>";print_r(mysql_error());echo "</br>";           echo "</br>";echo "</font>";  }}?>

其实没啥内容,就是简单的连接数据库,查询密码,因为要跳转网页,另一个页面就是flag所以要加个session,因为数据库的原因这里插入自己专属的flag每一关都不同,这里因为是第一关也不用写防注入的代码

四、第二个页面

第二个页面是用来拿flag的

base64 加密

完整的email代码

<!DOCTYPE html>
<html>
<head><title>登录!</title><meta charset="utf-8"><link href="css/style.css" rel='stylesheet' type='text/css' /><meta name="viewport" content="width=device-width, initial-scale=1"><script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>
</head>
<body>
<?php
include("../sql-connect/sql-connect.php");
session_start();
if(!isset($_SESSION['flag']) or $_SESSION['flag']!='bGVzc18x'){echo "<script>document.location='index.php'</script>";}$sql="SELECT email.email FROM email WHERE id='1'";$result1 = mysql_query($sql);$row = mysql_fetch_array($result1);if($row){echo '<div style=" margin-top:10px;color:#FFF; font-size:23px; text-align:center">';echo "<font size='5' color= '#7923E9'>";echo '你的邮箱是:'. $row['email'];echo '<br>小黑客你知道账号和密码吗';echo"</font></div>";session_destroy();}else{echo'<h1>出错了</h1>';}?>
</body>
</html>

五、效果展示

 

这就是我们搭建的第一关啦,后面在不改变样式只对输入进行过滤或者对输出进行设置的操作就很简单啦,这个页面我打算就做三四关吧,后面换页面,sql-labs 在刷它的时候确实是有点枯燥的,css代码我就不放啦,毕竟不是我自己搞的!

五分钟制作sql注入靶场相关推荐

  1. ae破碎效果在哪_AE教程 | 五分钟制作文字破碎效果

    原标题:AE教程 | 五分钟制作文字破碎效果 UBOOK知识在线 一个很认真的知识分享平台 愚人节快乐呀,亲爱的同学们- 今天又到了CC老师的AE小课堂啦,今天给大家带来的是一个很棒的特效效果--破碎 ...

  2. 关于SQL注入靶场搭建及过关教程

    关于SQL注入靶场搭建及过关教程 1.需要环境: 下载安装VMware,在虚拟机上布置虚拟机win7或winXP(个人推荐win7,使用界面与现在的win10界面较为相似,使用起来比较舒适) Win7 ...

  3. 一次简单的SQL注入靶场练习

    一次简单的SQL注入靶场练习 文章目录 一次简单的SQL注入靶场练习 前言 一.靶机下载 二.靶场渗透 1.端口扫描 总结 前言 为了巩固SQL注入以及实战演练的需要,我们来做一次简单的关于SQL注入 ...

  4. SQL注入靶场 RedTiger通关教程(level1~level10)

    Sql注入 介绍 Sql注入指的是通过构建特殊的数据查询语句 作为参数传入Web应用程序,通过数据库执行SQL语句来非法获取数据过程. 其主要原因是开发者/建站商写代码时,对用户提交的数据没有做细致的 ...

  5. aspmaker和mysql_五分钟制作ASP图书管理系统 ASPMaker简单教程

    ASPMaker,它提供了一种方便快捷的可视化操作环境,使用者即使没有任何的网络编程经验,只要提供Access数据库或是ODBC数据源,都可以凭借它在五步之内自动生成一个包含查看.搜索.添加.编辑.删 ...

  6. 开普勒sql注入靶场学习

    0x00 靶场搭建 下载地址 https://github.com/admin360bug/PHP 安装方法 导入localhost.sql数据库 修改APP/mysql.class.php 数据库配 ...

  7. SQL注入靶场:辛巴猫舍

    查:有多少行 进去是这样的:直接点击 可以看到:我们的url发生了变化, id是啥,我们猜测,id是数据库的前面的序号,像这样. 我们输入不同的id,可以得到不同的数据库,那么页面也就不同. 测试:i ...

  8. linux手机刷机包制作工具_大神教你五分钟制作安卓ROM包 ROM包修改教程

    之前很多人在网上问:"如何自己制作安卓ROM包?"今天,刷机帮的小编就给大家分享一篇关于安卓ROM包制作以及修改的实用教程,感兴趣的朋友可以一起来看看,当然,老司机就直接略过. 制 ...

  9. SQl注入靶场sqli——第一关

    在浏览器中 使用?id=1'–+ 是可以闭合的但是直接在数据库中查询就不会被闭合,这里估计是网页代码闭合的原因,在数据库中没有代码直接查询语句. 接下来是在闭合中添加语句执行我们想要的命令 使用 or ...

最新文章

  1. 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
  2. Oracle表空间文件损坏后的排查及解决
  3. Google Guice使用入门
  4. 面试python的理解_Python面试中会遇到的一些问题,和自己的理解。
  5. 分享WCF聊天程序--WCFChat
  6. 寻找最佳特征维度_寻找5种最佳设计模式书
  7. pycharm-实用教程和每日练习
  8. 最新个人引导页导航源码 极致酷范儿
  9. 中小学生计算机编程笔试,计算机编程笔试题
  10. 能上QQ,无法打开网页解决办法!!!(亲测能用)
  11. 计算机存储盘设置密码,如何在USB驱动器上设置密码并教您如何设置
  12. 支付宝「银行卡绑定流程」设计资源分享
  13. jxl 单元格画斜线
  14. html五角星代码,五角星评分系统.html
  15. linux 定位 踩内存_记录一次用户态踩内存问题
  16. startup_LPC17XX.s 启动文件分析
  17. 苹果机器学习博客姗姗来迟,不过第一篇文章就给紧缺训练数据的研究者们发糖...
  18. ISTP论文发表 SCI论文发表 EI论文发表常识
  19. OpenAI击败Dota 2世界冠军后记:如何训练你的AI
  20. 【转载】一句话实现五彩LINUX

热门文章

  1. Liunx系统工作命令篇
  2. 个人理解hisat2 mapping 结果,并计算overall alignment rate
  3. Leetcode算法Java全解答--12. 整数转罗马数字
  4. 因为修改首选DNS连不上网
  5. Matlab求一元函数极值
  6. win10电脑出现“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。”怎么办?
  7. 孩子像谁软件在线测试,测测你像哪位明星软件
  8. 当实体类无法引用,有没有任何问题的时候,报红报错无法启动
  9. python中imread什么意思_Python 中各种imread函数的区别与联系
  10. 帝国、PHPCMS及织梦三款CMS比较