更多渗透技能,10多本电子书和渗透工具包,搜索公众号:白帽子左边目标路由器管理员密码未知,根据现有字典管理员密码被炸毁。
工具: burpsuite
脚本语言: python3.7
1 .数据包分析输入小米路由器管理员接口地址192.168.31.1
管理员密码未知
输入测试密码: 123
用burpsuite抓两次包,看各自的结果
第一个包的结果:
第二次包的结果:
即使输入两次相同的密码123,也可以看到发送到服务器的password和nonce字段不同。
由此可以判断输入的密码被加密了,存在随机数。 不能直接用词典爆破。 必须加密词典,并附上随机数nonce。
2 .源代码读取前端源代码
选择f12页面中的元素并查看按钮id:btnRtSubmit
在调试器web文件中,查找按钮btnRtSubmit调用的方法
发现方法为登录手
浏览登录握手源代码
发现密码是用Encrypt方式加密的
显示Encrpty.oldPwd方法的源代码
发现oldPwd方法调用了目录中的两个源文件: aes.js和sha1.js
3 .因为要编写脚本代码,所以计划用python脚本调用js,加密词典中的数据,并将返回值设置为password和nonce。
JS代码(Encrypt.js )更改如下:
修改函数登录
传递的值是在前端文本框中输入的值,输出值是由oldPwd函数输出的值(捕获中的password值)和初始化Encrypt方法时生成的nonce
将oldPwd使用的Encrypt和CryptoJS方法写入同一个js文件,并显示代码的屏幕快照
Python脚本如下所示
导入程序
导入importexecjs#pyexecjs库
defget _ js (导入: # js文件
f=open(「encrypt.js”、“r”、encoding=‘utf-8’) )
line=f.readline () )
hml str=‘’
while line:
htmlstr=htmlstr line
line=f.readline () )
return htmlstr
jsstr=get_js ()
CTX=execjs.compile(jsstr ) )。
def creative _ book (创建: #加密密码词典
f=open(「top100pwd.txt " )
for line in f:
r=line.strip ()n ) )
UTF=CTX.call(loginhandle ),r ) ) )。
h=open (adobe _ top 100 _ pass _ creative.txt,‘a’) )
h1=open (adobe _ top 100 _ pass _ creative _ random.txt,‘a’) )
h.write((n ) utf[0] ) ) ) ) ) ) ) ) ) ) ) ) )。
H1.write((n ) urllib.parse.quote(utf[1] ) ) ) )。
print(utf[0],urllib.parse.quote ) (utf[1] )
h.close () )
h1.close ()。
f.close () )
creative_book (
生成两个词典adobe_top100_pass_creative.txt和adobe _ top 100 _ pass _ creative _ random.txt
分别保管密码和密码。
截图如下
4 .爆破以上步骤完成后,必要的词典生成完成,开始burpsuite攻击
把抓住的数据包发送给Intruder
选择Pitchfork,需要爆破的字段为password和nonce。
在Payloads上加载两个词典
点击Start attack开始攻击
攻击完成后点击length长度排行榜,发现了异常的长度
显示此请求包的响应包
code字段为0,表示密码正确的token已经分发。
将password和nonce字段更改为Payload1和Payload2以释放包。
取得了管理员权限。
源代码
3359 github.com/h2so 0o4/admin _ intruder
资料来源: http://33h.co/w8f8i
参考资料
3359 blog.csdn.net/x1 t02m/article/details/81949572
3359 t0data.git books.io/burp suite/content/chapter8. html