CTFHub题目WriteUP地址汇总
本来不想分段的,但是后来发现要写的东西太多了,就写了个首页,汇总一下地址,大家见谅
REC
eval执行
需要的工具
蚁剑
emm这道题我也不知道是为啥,跟着别人的教程在url中输入http://challenge-187cf816b7bf0349.sandbox.ctfhub.com:10800/?cmd=system(‘ls /’);这些东西我的浏览器不会返回任何东西。
那没办法了,只能连接蚁剑
由主页代码得知,这里的连接密码是cmd
点击测试链接,右下角出现绿色的连接成功即可。
在主目录里找到flag文件,点进去即可得到flag
这题暂时没时间用到RCE的特性,之后再用吧,不急
文件包含
需要的工具
浏览器
HackBar
首先给我们看到了它的源代码,分析一下,是要通过get方式传入一个file参数,如果其中不包含flag字符串的话,就可以把它引用进来
那么看看下面,有一个shell给我们用,点进去
说明它的关键参数是ctfhub,我们只需要在get中把它引入即可
接下来使用HackBar进行操作
用ctfhub传入一个参数,让它遍历出当前目录的文件
可以看到有一个flag文件
使用cat命令查看该文件,即可得到flag
其实它就是利用了服务器中本来就存在的一个文件,在get中引用就可以成为一个注入点,然后去输入命令就可以啦!
本题结束
php://input
一开始看到这个题也是一脸懵逼的,首先代码分析可以知道它要让我们的GET中有一个file的变量然后有一个php://input的参数值
那这玩意是啥呢?那么去网上查吧,,
查出来的结果是这个
简单来说就是这东西可以让服务器读取到post中的php代码然后执行
接下去就好办了
不过我的HackBar一如既往的令人失望:
啥都没输出,不过不要紧,咱们还有BurpSutie在支持我们:
点击发包后在BP里面抓包,再点击送到Repeater里,就可以执行我们熟悉的命令行代码啦:
本题结束
读取源代码
一开始还是那个熟悉的代码,和上题一样
但是这次却不能用php://input 了,可能是phpinfo()中allow_url_fopen没有开启,导致不能使用php://input
去查了一下,发现可以用这个:php://filter
简单来说就是一个读取文件的命令:
构造Payload:
php://filter/resource=/flag
本题结束
远程包含
一开始依旧是那个熟悉的代码,不过这次换成了有flag就返回Hacker
那么还是试试file=php://input 能不能用:
还真可以,,
那么就是老套路了:(和上面两题一样)
本题结束
命令注入
一开始 我们可以分析源码
得到我们只要随便输入一个ip然后它会帮我们ping
这时候我们再输入一个;再跟一个命令就可以拥有命令行的控制权啦!
这里要注意一个问题,ls
这个命令是遍历当前目录下的文件,ls /
则是遍历主目录,我一开始没搞清楚这两个命令以至于搞了好久没搞好
这里还有一个小坑:当你输入
www.baidu.com;cat 2320184855210.php;
的时候它不会给你显示flag
要你F12看源码才行
小小的题目,坑却踩了很多,看来我还要加强
本题结束
过滤cat
这个也是很简单的啦
www.baidu.com;ls;
看一下代码,有cat就不能执行,那么去搜一下有啥能代替cat的:
可以试一下tac:
www.baidu.com;tac flag_145421497820403.php;
F12查看源码,成功:
本题结束
过滤空格
这里分享一个网址:关于绕过空格的几种方式
审计代码可以看到,它过滤了空格:
通过网上查的资料得知,这些可能可以代替空格
之后和之前几题一样
www.baidu.com;ls;
www.baidu.com;cat<flag_305671596615611.php;
(这里多试几个就行了)
F12
本题结束
过滤目录分隔符
这次好像没有什么字符可以替代了
不过不要紧,我们可以用我们的逻辑替代掉/
先输入:
www.baidu.com;ls;
看起来 flag_is_here 这玩意是个文件夹
我们cd进去,再ls看看:
www.baidu.com;ls;cd flag_is_here;ls
找到了我们要的文件,接下来我们可以先cd进去,再cat该文件
www.baidu.com;cd flag_is_here;cat flag_29003292349992.php;
找到啦
本题结束
过滤运算符
可以看到,这次过滤了这几个
再ls一下
但是并不影响我们执行代码
www.baidu.com;cat flag_2752844493186.php;
本题结束(我怀疑是来骗我30个币的)
综合过滤练习
这边暂时引用一下大佬的教程吧,以后有空我再自己出教程:网址
我就稍微做一个总结吧:
这道题里:
${IFS} 代替 空格
$* 占位符 比如 flag=> fl$*ag 这样就检测不出来flag字符串了
%0a是换行符,%0d是回车符,可以用这两个进行命令拼接。
其他和之前的题目差不多
(完结)