![dab27a3bbc98540424335d526db6671c.png](https://i-blog.csdnimg.cn/blog_migrate/5012c8b279a3cfbaaa17c7859b956014.jpeg)
- 大黑客:小v呀,你竟然在网上说自己是清华的,啧啧...
- ailx10:别瞎扯,你没有我的密码,不可能看到我信息!
- 大黑客:是吗?你看看下面这个是不是你,成功!!!
- ailx10:谁还不能有点理想?你不也说自己是清华的嘛,哈哈哈哈嗝.......
![dc91667b5ece2073d651f19a18d0f15f.png](https://i-blog.csdnimg.cn/blog_migrate/f8c7e7727fc3ae8fe2b843d3cf9ce784.jpeg)
上面的场景就是典型的逻辑漏洞,大黑客和小v都可以绕过一些环节,直接查看对方的个人信息,上次还侥幸挖到一个知乎逻辑漏洞:知乎漏洞2则 。
在线实验环境: http:// 144.34.129.116/ (请勿攻击,抓住看我不打死你哦)
维护服务器需要一定费用,本网站有效维护到2019年9月!赞助请打赏文章,会积好运。
常见逻辑漏洞:
- 订单,篡改金额。
- 越权,非法访问。
大黑客是如何查看到小v的个人信息的呢?分析下面的实验代码,可以看出,用户登录成功后,显示欢迎界面,点击Your info发起GET请求自己的信息。
![b7013ddd1672584460e69ab44f28f028.png](https://i-blog.csdnimg.cn/blog_migrate/57523ad8a465097f8ec5d7834020482f.jpeg)
然而,大黑客发现直接越权访问/login.php?name=ailx10
,因为数据库已经是连接状态中,随便输入谁的用户名,就可以访问他的个人信息。当然,小v也以其人之道,还治其人之身,大黑客,清华,优秀!
![0871888cde6115955a35055872029c52.png](https://i-blog.csdnimg.cn/blog_migrate/db9b308fdca037bb73d60d024c30cd5c.jpeg)
后记:
- 大黑客:对了,小v啊,上次知乎中秋节挖到的2则漏洞,刘看山给你月饼了吗?
- ailx10:没打我就算好的了,还要什么自行车....
前端代码:
<!-- index1.html by ailx10 -->
<html>
<head>
<title>ailx10</title>
</head>
<body>
<form action="login.php" method="post">
name:<input type="text" name="name"><br />
passwd:<input type="text" name="passwd"><br />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
后台代码:
// login.php by ailx10
<?php
$con=mysqli_connect("localhost","root","***","hack2018");
if( !$con )
{
exit("error:" . mysqli_connect_error());
}
if(isset($_GET["name"]))
{
$name = $_GET["name"];
$result = mysqli_query($con,"select * from login where `name` = '" . $name . "'");
$row = mysqli_fetch_array($result);
if($row)
{
echo "success!<br />";
echo "name:" . $row["name"] . "<br />";
echo "passwd:" . $row["passwd"] . "<br />";
echo "school:" . $row["school"] . "<br />";
}
else
{
exit("faild");
}
}
else
{
$name = $_POST["name"];
$passwd = $_POST["passwd"];
$result = mysqli_query($con,"select * from login where `name` = '"
. $name . "' and `passwd` = '" . $passwd . "'");
$row = mysqli_fetch_array($result);
if($row)
{
echo "success!<br />";
echo "<a href='login.php?name=" . $name . "'>Your info</a>";
}
else
{
exit("faild");
}
}
?>
参考文献:《Web安全攻防:渗透测试实战指南》电子工业出版社