https://github.com/ccccm4/NCTF2018
点击链接直接跳转到百度了,用burpsuite重放一遍就OK了
即在主域名的返回报文里面
通过用burpsuite的sql fuzz测试了一下
发现注释了 空格 # - *
将注释全都过滤了,只能用单引号闭合
绕过空格的一些方法:
两个空格代替一个空格,用Tab代替空格,%a0=空格
%20 %09 %0a %0b %0c %0d %a0 %00 /**/ /!/ ()
经测试,%a0可以绕过
payload如下:
http://ctfgame.acdxvfsvd.net:20001/?id=1'%a0union%a0select%a01,2,3%a0'
http://ctfgame.acdxvfsvd.net:20001/?id=1'%a0union%a0select%a01,(select%a0group_concat(th1s_1s_flag)%a0from%a0flaaaaaaag.f144444444g),3%a0'
注意一下:
Flag不在当前数据库
少使用sqlmap,只有在手工注入无法解决时,可以考虑用sqlmap,
这题好坑…一开始没提示,然后怎么也想不到…就没看这题了,也不知他们放了提示…
往下拉可以看到这个
调整了几次POST姿势==(萌新还不知道该怎么POST QAQ)
这里做个笔记~不是很清楚GET和POST的键值…
GET与POST方法实例:
GET /books/?sex=man&name=Professional HTTP/1.1 //这里注意一下
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive
POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded //POST的请求行多了这个
Content-Length: 40
Connection: Keep-Alive
(----此处空一行----)
name=Professional%20Ajax&publisher=Wiley
返回了一些东东,好多html实体…保存出来变成html格式打开吧~
嘻嘻嘻
题目在哪呢
>
有些函数看不懂…解释一下吧
error_reporting(0); // 关闭错误报告
PHP ini_set用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置
open_basedir可将用户访问文件的活动范围限制在指定的区域
可用符号"."来代表当前目录注意用open_basedir指定的限制实际上是前缀,而不是目录名。
举例来说: 若"open_basedir = /dir/user", 那么目录 "/dir/user" 和 "/dir/user1"都是
可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜线结束路径名。例如设置成:
"open_basedir = /dir/user/"
chr()从不同的 ASCII 值返回字符:
ord()ord() 函数返回字符串的首个字符的 ASCII 值。
file_get_contents() 函数把整个文件读入一个字符串中
mt_rand() 使用 Mersenne Twister 算法返回随机整数
intval() 函数用于获取变量的整数值。
file_get_contents — 将整个文件读入一个字符串
一开始以为是mt_rand()函数的漏洞
结果是这个关键函数
echo file_get_contents(de_code($_GET['file_']));
get的内容通过de_code()函数解密
所以我们要写个加密函数,flag在flag.php里面(猜的)
对flag.php进行加密
这道题收获满满~
正常套路
看源码,抓包,请求行,无果
扫描后台目录,无果,于是想到源码,泄漏,看题目应该是.git源码泄漏
看来是的,利用.git源码恢复神器
用lijiejie的GitHack工具:https://github.com/lijiejie/GitHack
得到了README.md内容是Allsource files areingit tag1.0
即falg在tag.1.0的时候,推荐一篇git学习
git学习
即要找到版本在1.0的文件,这里推荐看一篇P神的文章,这里面有将到如何利用和原理
https://www.leavesongs.com/PENETRATION/XDCTF-2015-WEB2-WRITEUP.html
偶然找到一个神器工具,可以将各个版本的源码提取出来
下载地址
https://github.com/style-404/Git_Extract
得flag~