从零到一,跟着我一起探索burp靶场吧
首先我们玩一玩服务器端漏洞
第一关是文件路径遍历
我们点击访问实验室
根据提示点击查看详情 bp抓包
filename 这不是出来了
把上文提示的payload拼接一下,成功读取/etc/password
第二关是 什么是访问控制
我们先访问robots.txt 这里提示里面存在管理面板的路径(没有做鉴权,通过不受保护的管理功能这个提示,应该直接访问管理面板路径就可以删除carlos用户了)
把这个路径拼接一下
直接删除就ok了
接着做这个第二关还没完 有好几个小关卡
还是未授权,通过它的提示这个未授权的管理面板会在应用程序某个位置公开
访问实验室
直接查看网页源代码
这段代码意思是isAdmin
为true
时,向网页添加一个额外的 "Admin panel" 链接。这个链接可以指向管理员专用的控制面板或管理页面,提供对特定功能或权限的访问。
拼接即可 不知道为啥用户没加载出来
接着玩下一个小关卡
通过请求参数控制用户角色
我们尝试拼接/admin
那么我们现在的思路应该就是判断它用什么校验的管理员身份
我们尝试使用上文提供的用户凭据登录 bp抓包看看请求包是什么样的
因为这是个普通用户的凭据,这里显示false,那么我们访问管理页面把后面的admin=false粘上去 并改为true(如果有admin=就不用粘贴了,我这访问admin管理面本cookie里面没有admin=false)
删除carlos用户即可
接着下一个关卡
这道题和id请求参数有关系
让我们看carlos的key
我们先用凭据登录上去看看
这是它的请求包 果然校验了id值
我们可以通过有关carlos身份信息的地方找找他的id 比如文章地址
去用自己账号登录 id值替换成carlos的
接着下一关
根据提示我们先登录
登录成功后发现此页面有密码
我们在密码框里面检察元素快速定位
修改请求包id参数值为上文提示的administrator 根据响应得出密码
通过账号密码登录 把carlos用户删了
接下来就是第三关卡了
身份验证漏洞
第一个是存在用户名枚举,通过用户名枚举爆破密码,字典都给我们准备好了
直接bp抓包 设置用户名为变量开始爆破
这个回显翻译过来是密码不正确
正确用户名有了 那么我们爆破密码就变得简单了
输入正确用户名 设置密码为变量
用它给的密码本开始爆破
响应长度不一样
跳转 应该是正确密码我们去登录
登录成功下一关
先根据提示输入自己的凭据
点击电子邮件客户端
这个就是安全码
使用安全码登录成功 记录下来这个页面的url
接着我们用受害者凭据登录
不需要安全码信息也加载出来了
这道题的考点应该就是/my-account 校验安全码这个环节 没有做判断导致只需要输入正确的url即可成功加载处数据
下一道题 第四关
ssrf 服务端请求伪造 看看怎么玩
这道题要求我们删掉carlos用户
随便点击进去一个商品,这块有个检查库存按钮
这是请求包 url解码一下
stockApi=http://stock.weliketoshop.net:8080/product/stock/check?productId=1&storeId=1
这个 API 可用于检查具有特定产品 ID (productId=1
)和商店 ID (storeId=1
)的商品库存情况。通过发送 HTTP 请求到该 API,您可以获取关于特定产品在指定商店的库存信息的响应数据。
构造一个api stockApi=http://localhost/admin
成功显示出来管理员页面
http://localhost/admin/delete?username=carlosstockApi=http://localhost/admin/delete?username=carlos 这是删除carlos的get请求
也可以通过stockApi传递ssrf攻击
这是针对于本地服务器的ssrf
下一道题
针对于另一个后端系统的ssrf
有的后端系统用户是无法直接访问的,但是服务器可以成功向其发送请求。
我们根据提示这边说是192.168.0.X 某一个8080端口
还是上一个ssrf题的操作方法哈 替换stockApi
不过这道题多了两个条件一个是8080端口 一个是主机位是变量
进入商品 点击检查库存
stockApi=http://192.168.0.1:8080/admin 设置1为变量
字典就是255个数字哈(1-255)这里科普一个小知识,如果使用一个以子网掩码 255.255.255.0 划分的子网,那么该子网的广播地址将是 192.168.0.255。
这个http://192.168.0.58:8080我们不能直接访问,因为这是内部ip地址,属于另一个后端系统
所以我们需要第一个基本的ssrf来作为中转站
接下来直接替换
stockApi=http://192.168.0.58:8080/admin
payload后面不要 多空格哈 不然报错了
删除方法与上面一致这里就不演示了哈
接下来是第五关了哈
文件上传漏洞
讲的很verygood
这里还科普了我们可以上传哪些恶意的webshell
我们开始玩
说是让我们上传一个远程执行代码
我们先用它的凭据登上去看看是怎么个事
这是上传头像
我们来看下它提示给的payload
<?php echo file_get_contents('/home/carlos/secret'); ?>
这段代码尝试读取位于 /home/carlos/secret
路径下的文件内容,并使用 echo
命令将其输出。具体来说,file_get_contents()
函数用于读取文件的内容,然后 echo
语句将文件内容作为字符串输出到浏览器或命令行终端。
我们在电脑上写一个php文件 把这个payload粘进去
我们看burp历史记录
请求方式和 响应内容都记录下来了
这个get请求 其实就是一个我们上传的1.php地址
接着玩下一关
看题目要求应该是绕过文件上传限制 更改内容类型即可
登录账号 上传一个php看看啥请求包
这回显是让我们上传image/jpeg and image/png 类型的呀
在上传一个png看看啥情况
上传成功了
我们直接把上传php文件的请求包改成Content-Type:image/jpeg 即可
成了
第六关
操作系统命令注入
windows和linux命令写的很详细啊
开始玩吧
找product/stock接口 检查库存这就是
在参数后加;whoami
或者|whoami
为什么能执行系统命令呢
因为这里的功能是通过调用带有产品和存储 ID 作为参数的 shell 命令来实现的
最后一关了sql注入
这一关好像很基础 category随便输参数值 都提示这里存在sql注入漏洞
我们来看下它的payload
category
'+OR+1=1--
通过添加 ' OR 1=1--
到查询条件中,攻击者可以绕过原本的筛选条件,并获取到所有的数据记录。
这是它本身的请求
只能获取3张图片, 但是通过这个payload 即可加载所有图片数据
下一关
这不就是万能密码吗
其实我们看刚才给的payload 就可以
SELECT * FROM users WHERE username = 'administrator'--' AND password = ''
SELECT * FROM users
: 这部分表示从名为"users"的数据库表中选择所有的列。WHERE username = 'administrator'--'
: 这部分表示在结果中只选择用户名(username)等于"administrator"的行。--
是SQL注释的标记,它后面的内容会被视为注释而不被执行。' AND password = ''
: 这部分是一个意图欺骗的片段,试图提供一个空密码来绕过认证。然而,由于注释符号的存在,这部分代码实际上是被注释掉的,不会对查询产生影响。
那我们这边其实已经答案是什么了 administrator'-- 输入这个就可以让AND password = ''注释掉
大家对这个sql语句有理解吗 知道为什么是administrator'--吗?
第一这个--是注释,其次为什么要给administrator后面加单引号,因为这是字符串要闭合,不闭合就报错了。
成功登录