查看: 24371|回复: 13

关于一次对sql二次注入的学习!

[复制链接]
  • TA的每日心情
    奋斗
    2017-10-1 09:06
  • 签到天数: 380 天

    [LV.9]以坛为家II

    发表于 2016-11-23 14:18:00 | 显示全部楼层 |阅读模式
    刚学几天php,然后看到了二次注入这个办法,我就想本地搭建测试下!然后过程如下:
    首先附上代码:
    [AppleScript] 纯文本查看 复制代码
    <html>
    <head>
    <title>SQL注入</title>
    </head>
    <body>
    <h1>二次注入!<h2>
    <form action="" method="post">
    用户名注册:<input type="text" name="user"><br>
    密码注册:<input type="text" name="pass">
    <input type="submit" name="submit" value="注册">
    <br>sql插入数据语句如下:</br>
    <?php
    $user=$_POST["user"];
    $pass=$_POST["pass"];
    $conn=mysql_connect("localhost","root","root");
    if(!$conn){
    	die("error!");
    }
    //if(isset($user1) && isset($pass1)){
    $user=addslashes($user);
    $pass=addslashes($pass);
    mysql_select_db("test",$conn);
    $sql="insert into test (test1,test2) values ('$user','$pass')";
    $sql1=mysql_query($sql,$conn);
    if($sql1){
    	echo $sql . "<br>";
    } else {
    	"写入失败。";
    }
    /*} else {
    	echo "请输入账号密码注册!";
    }*/
    ?>
    </body>
    </html>

    [AppleScript] 纯文本查看 复制代码
    <html>
    <head>
    <title>SQL注入</title>
    </head>
    <body>
    <h1>二次注入!<h2>
    <form action="" method="post">
    账号查询:<input type="text" name="name">
    <input type="submit" name="submit"><br>
    <?php
    header('Content-type: text/html; charset=utf-8');
    $name=$_POST["name"];
    $name=addslashes($name);
    $conn=mysql_connect("localhost","root","root");
    if(!$conn){
    	die("error!");
    }
    mysql_select_db("test",$conn);
    $sql="select * from test where test1='{$name}'";
    $sql1=mysql_query($sql,$conn) or die(mysql_error());
    $rows=mysql_fetch_array($sql1);
    $pass=$rows['test2'];
    if($sql1){
    	
    	//$pass=$rows['test2']
    	$sql2="select * from test where test2='$pass'";
    	$sql3=mysql_query($sql2) or die(mysql_error());
    	 echo "<br>";
    	 print_r($sql3);
    	var_dump($sql3);
    	echo "查询语句:" . $sql2;
    } else {
    	"查询失败。";
    }
    ?>
    </body>
    </html>

    小菜刚学几天php,所以代码写的特别乱,还有很多地方写的多余。但是都是自己慢慢一步步写的,慢慢百度学习的,
    并没有copy网上脚本或者修改的。所以代码太渣,还望大家谅解。
    总结帮助不太了解的小伙伴理理思路:
    1.首先通过账号密码注册向数据库写入单引号。由于存在转移,所以直接注入是不行的。但是我们的单引号会写入数据库中储存。
    2.通过查询账号将我们刚才写入的带有单引号的数据select出来。(我写在密码中的,你也就可以这么理解,找回密码处,你输入账号,他就会将密码select出来给你)
    这个时候,并没有对单引号进行过滤,所以就造成了引入单引号。造成了注入。
    1.png
    1.这里我首先写入了账号123456',密码123456的作为测试。很明显看到了单引号被转移了。所以不存在注入。
    2.png
    刚才的单引号存在数据库中的数据却没有转移,直接就是123456'。
    3.png
    然后我将类似的注入语句写入了进去,账号123,密码:1' and updatexml(1,concat(0x7e,(version())),0) or ' 类似的报错语句都可以。
    4.png
    然后我们在查询账号来输出密码。就看到了成功造成了注入。注意看mysql监控中的两条语句的内容和先后顺序。
    5.png
    然后和上面同样的道理写入查询版本的语句。
    6.png
    然后也出来了。二次注入就是先向数据库写入带单引号的注入语句,在来查询出来。
    文章只为和大家分享科普文,大牛勿喷!同时问个php问题如下:
    7.png
    如果有学php的小伙伴,可以一起学习php。






    评分

    参与人数 1i币 +1 收起 理由
    linghun + 1 感谢分享

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2022-11-4 00:00
  • 签到天数: 325 天

    [LV.8]以坛为家I

    发表于 2016-11-23 15:42:11 | 显示全部楼层
    吓到宝宝了,实话说,几天?

    点评

    好像是第6天了,代码虽少,但我却写了几小时,一直在出错!  详情 回复 发表于 2016-11-23 17:07
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-11-13 20:06
  • 签到天数: 1628 天

    [LV.Master]伴坛终老

    发表于 2016-11-23 15:48:05 | 显示全部楼层
    先学好mysql语法

    点评

    嗯嗯,90表哥说得在,目前在同时学习mysql语法!  详情 回复 发表于 2016-11-23 17:08
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-10-1 09:06
  • 签到天数: 380 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-11-23 17:07:49 | 显示全部楼层

    RE: 关于一次对sql二次注入的学习!

    xiaoye 发表于 2016-11-23 15:42
    吓到宝宝了,实话说,几天?

    好像是第6天了,代码虽少,但我却写了几小时,一直在出错!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-10-1 09:06
  • 签到天数: 380 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-11-23 17:08:23 | 显示全部楼层

    RE: 关于一次对sql二次注入的学习!

    90_ 发表于 2016-11-23 15:48
    先学好mysql语法

    嗯嗯,90表哥说得在,目前在同时学习mysql语法!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-10-1 06:59
  • 签到天数: 308 天

    [LV.8]以坛为家I

    发表于 2016-11-23 17:12:22 | 显示全部楼层
    不错,妹子有前途!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-11-6 18:37
  • 签到天数: 358 天

    [LV.8]以坛为家I

    发表于 2016-11-23 21:28:08 | 显示全部楼层
    楼主很不错。前几天买了《sql注入攻击与防御》,发现不学php不行了,就开始学。跟楼主学习学习。

    点评

    大兄弟说笑了!一起学习!  详情 回复 发表于 2016-11-23 23:13
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2016-12-13 18:32
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2016-11-23 22:15:51 | 显示全部楼层
    厉害了

    点评

    一起学习走一波!  详情 回复 发表于 2016-11-23 23:13
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-10-1 09:06
  • 签到天数: 380 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-11-23 23:13:24 | 显示全部楼层

    RE: 关于一次对sql二次注入的学习!

    周翔宇 发表于 2016-11-23 21:28
    楼主很不错。前几天买了《sql注入攻击与防御》,发现不学php不行了,就开始学。跟楼主学习学习。 ...

    大兄弟说笑了!一起学习!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-10-1 09:06
  • 签到天数: 380 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-11-23 23:13:48 | 显示全部楼层

    RE: 关于一次对sql二次注入的学习!


    一起学习走一波!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-25 09:00 , Processed in 0.046653 second(s), 21 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部