2023年全国职业院校技能大赛信息安全管理与评估-3阶段web解析(writeup)
# 人力资源管理系统
后续我也会分享其他资源到我的博客感兴趣的可以关注
- 2.1 复盘解析
访问靶机IP
在robots.txt里面能看到一个nosql.php,然后这里就会给出第一个flag
尝试弱口令(这里可以尝试 hydra+burp进行爆破) 这里随便输入一个账号密码显示登录失败
MongoDB 与 RDBMS Where 语句的比较
操作 格式 范例 RDBMS 中的类似语句 等于 {:} db.love.find({“name”:“whoami”}).pretty() where name = ‘whoami’ 小于 {:{$lt:}} db.love.find({“age”:{$lt:19}}).pretty() where age 小于或等于 {:{$lte:}} db.love.find({“age”:{$lte:19}}).pretty() where likes 19 大于或等于 {:{$gte:}} db.love.find({“age”:{$gte:19}}).pretty() where likes >= 19 不等于 {:{$ne:}} db.love.find({“age”:{$ne:19}}).pretty() where likes != 19 这里选了$get(大于)某个数的值会被列出
(图片来源网络,侵删)nosql.php?username[$gt]=&password[$gt]=
可以看到这里列出了所有的用户名密码,在这里就会得到此题的第二个flag
查看源代码可以发现页面给了两个参数提示一个o一个hint
尝试传入o跟hint,可以发现我们传入的被写入跟执行了
那么这里写个shell进去,每写4个字符o都+4
(图片来源网络,侵删)o=1 hint=
首先需要绕过这个401
if(@$_SERVER['HTTP_INTERNAL_AUTH']!=="10.10.10.1"){ header("Location: template/401.html"); exit(); }
只需要在请求的时候带上,这个一开始是看其他请求头的格式首字母大写然后_改-尝试出来的,这样即可绕过401
Internal-Auth: 10.10.10.1
接下来需要传入 k e y 1 − 3 来绕过限制,这里来到第一个 key1-3来绕过限制,这里来到第一个 key1−3来绕过限制,这里来到第一个key的限制,很明显是要一个md5加密后为0e的数字才能绕过
if(md5($key1)=="0e230420452993424058024229903331"
拿php去跑一下试试看,跑出来一个0e215962017
还没有评论,来说两句吧...