SUCTF部分web题解

这篇博客详细介绍了SUCTF比赛中关于Web安全的三个挑战:CheckIn中利用图片马和.htaccess绕过上传限制获取flag;Pythonginx通过Unicode规范化绕过字符串判断读取文件;easy_sql利用SQL模式修改来拼接字符串获取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CheckIn

题目打开就是一个上传点

经过初步测试发现可以上传jpg、png、htaccess等文件,用exif_image函数来判断上传文件头,限制了php文件且文件内容里不能包含<?,,但可以上传<script language='php'><scirpt>类型的图片马来绕过。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
尝试上传htaccess文件,发现无效,因为利用htaccess需要有两个前提条件1.mod_rewrite模块开启。2.AllowOverride All。(PS:原来作者出题时过滤了htaccess,只不过过滤时打成了htacess)
最后参考大牛的可以上传.user.ini文件,第一次遇到,贴一下链接:https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html
不过利用这个漏洞也有个前提条件:上传文件夹下需要有正常的php文件,这题刚好上传目录下有个index.php刚好满足。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Pythonginx

打开题目查看源代码即可拿到源码

@app.route('/getUrl', methods=['GET', 'POST'])
def getUrl():
    url = request.args.get("url")
    host = parse.urlparse(url).hostname
    if host == 'suctf.cc':
        return "我扌 your problem? 111"
    parts = list(urlsplit(url))
    host = parts[1]
    if host == 'suctf.cc':
        return "我扌 your problem? 222 " + host
    newhost = []
    for h in host.split('.'):
        newhost.append(h.encode('idna').decode('utf-8'))
    parts[1] = '.'.join(newhost)
    #去掉 url 中的空格
    finalUrl = urlunsplit(parts).split(' ')[0]
    host = parse.urlparse(finalUrl).hostname
    if host == 'suctf.cc':
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值