白盒审计-未授权访问
准备工作,自制靶场 vscode
什么是未授权访问
未授权访问漏洞,是在攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作。
- 已知Web网站具有登录页面。或者具有不允许访问的目录或功能。
- 不登录,可通过链接直接访问用户页面功能。
开始练习
自己写的一个管理系统,有点简陋,我们拿到源码第一步先把网站搭建起来
发现有登入入口,先不要管他,我们先查看源码结构
发现并未采用任何框架,我们发现admin 这个目录 打开它
无疑就是后台里面的功能,试试直接访问
1
| http://192.168.3.5:8000/admin
|
发现直接重定向了,查看源代码
1 2 3 4 5 6 7 8
| <?php session_start(); if($_SESSION['user'] == 'admin'){ echo '欢迎管理界面'; }else{ header("Location:../login/"); }
|
看到是非常典型的SESSION认证,而且是非常简陋,都不用密码验证,
开始测试
我们看到有
1
| PHPSESSID=o70i5f9e3uteql8n4lt72tj1ri
|
那我们将phpsessid 改成admin 就满足了
1 2
| if($_SESSION['user'] == 'admin'){ echo '欢迎管理界面';
|
发送包,发现我们失败了,具体为什么呢??
因为我们发送的是$_SESSION[‘user’] 而不是 PHPSESSID=admin,所以在这里是无法进去的
那我们可以观察一些目录结构
将admin下的都遍历一遍
lookup.php
、socres.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <?php $conn = include("../config/config.php"); $sql = "SELECT * FROM memberinfo"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<tr>"; echo "<td>" . $row["mebName"] . "<td>"; echo "<td>" . $row["mebID"] . "<td>"; echo "<td>" . $row["mebSex"] . "<td>"; echo "<td>" . $row["mebClass"] . "<td>"; echo "<td>" . $row["souse"] . "<td>"; echo "<td>" . $row["mebAddDate"] . "<td>"; echo "<br>"; echo "<\tr>"; } } else { echo "没有找到匹配的数据"; } $conn->close(); ?> </table> <?php $xh = @$_POST['xh']; if(isset($xh)){ $conn = include("../config/config.php"); $sql = "DELETE FROM memberinfo WHERE mebID = '$xh'"; if ($conn->query($sql) === TRUE) { echo "字段内容删除成功"; header("Location: ../admin/index.php?scores=lookup"); }else { echo "删除失败: "; } } ?>
|
1 2 3 4
| 可以对他进行添加数据 但是sql注入有防护 可以任意插入数据 $query = mysqli_prepare($conn, "INSERT INTO memberInfo (mebID, mebName, mebSex, mebClass, mebAddDate, souse , passwd) VALUES (?, ?, ?, ?, ?, ?,?)"); mysqli_stmt_bind_param($query, "sssssss", $mebID, $mebName, $mebSex, $mebClass, $mebAddDate, $souse,$pass);
|
在socres.php 未发现任何的后端认证访问直接进去 正常来讲是通过sql注入找到密码才能登后台 为了方便我才加进去
看到了敏感信息 账号密码为admin/admin@123 //socres.php 泄露密码
后面的功能测试靠大家自由发挥了 = =! 后面源码放群里
QQ交流群:611149449