一个CTF流量题
题目链接:https://wwo.lanzn.com/ifn1t256qzni题目说明:一个网站被入侵了。然后让你从流量包里提取出来黑客爆破的用户名和30位的uid,flag格式就是{用户名+uid}
我做了过滤,找到了一个key,但是貌似不是uid,然后也没找到爆破的用户名,求大佬指导下
你切换流看一下,有个算法再里面的。
<script>
document.getElementById('loginForm').addEventListener('submit', function(event) {
event.preventDefault();
// const sm4 = smCrypto.sm4;
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const iv = 'a3dcb4d229de6fde0db5686dee47145d'
const encryptedUsername = window.smCrypto.encrypt(username, key, { iv: iv });
const encryptedPassword = window.smCrypto.encrypt(password, key, { iv: iv });
// ...............
document.getElementById('username').value = encryptedUsername;
document.getElementById('password').value = encryptedPassword;
// ............
this.submit();
});
</script>
key = '7c72671bb192a8ebe5400cf42eadeabd'
找一下这个算法,执行一下就是,就在流里面 带用户名密码的登录绝大多数情况下是POST传参,你这个肯定不对,先过滤http.request.method==POST,因为是爆破,你就直接滚轮向下,就可以看到一串login的信息了。再追踪一下http流,发现每次登录操作都会返回302跳转到http://192.168.2.203:8081/user?encryptedData=XXXXXX,再过滤http.response.code == 200,分组详情里面搜索Set-Cookie,就能看到正确登录的包了。因为是302跳转的,向上找两个http流(4090)就能看到传参是username= &password=c997519104c2bbfb2904a08bb078d25e。通过某种加密方法加密了.再向上一个流,看到登录错误之后返回到login界面,html代码里有加密算法和密钥:: const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const iv = 'a3dcb4d229de6fde0db5686dee47145d'
const encryptedUsername = window.smCrypto.encrypt(username, key, { iv: iv });
const encryptedPassword = window.smCrypto.encrypt(password, key, { iv: iv });
const key = '7c72671bb192a8ebe5400cf42eadeabd'
CyberChef解密得到username:lijing
password:qwertyuiop
还差一个uid我再翻翻,不想截图,将就看吧 username=cfa42df73fc70d57b32cbf9fcaa3bca0&password=cfa42df73fc70d57b32cbf9fcaa3bca0 没找到,前面提到的4090这个流,返回的包是HTTP/1.1 302
Location: user?encryptedData=b4b9fd787b0858f80513775f52bf0f9c,用前面的方法解密得到id=14,这才是这个爆破成功的用户的uid,不知道题目原始的表述是啥,无法继续了 POST /Login HTTP/1.1
Host: 192.168.2.203:8081
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Connection: close
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
Origin: http://112.229.74.197:8081
Content-Type: application/x-www-form-urlencoded
Referer: http://112.229.74.197:8081/Login
Accept-Language: zh,en;q=0.9,zh-CN;q=0.8
Content-Length: 83
username=beadcdad438358202a3db4c8f1a0846f&password=c997519104c2bbfb2904a08bb078d25eHTTP/1.1 302
Location: user?encryptedData=b4b9fd787b0858f80513775f52bf0f9c
Content-Length: 0
Date: Sat, 22 Jun 2024 10:38:44 GMT
Connection: close
师傅这是哪一个比赛,我也在做着题做好久了? jiayuanst 发表于 2024-7-22 19:49
没找到,前面提到的4090这个流,返回的包是HTTP/1.1 302
Location: user?encryptedData=b4b9fd787b0858f8 ...
原题是:流量分析
某个Web系统遭到攻击,请根据流量分析,攻击者通过暴力破解获得的账号是什么;攻击者进入系统后台后,发现存在越权漏洞,请分析该系统uid为30的用户名是什么?提交格式:flag{爆破成功的用户名+uid为30的用户名} jiayuanst 发表于 2024-7-22 19:49
没找到,前面提到的4090这个流,返回的包是HTTP/1.1 302
Location: user?encryptedData=b4b9fd787b0858f8 ...
这个题问的其实是uid=30的是哪个账户,反向加密一下,查找对应的用户名(lijun,在包119446里)就行了,他这个uid使用加密方式和登录时一致,感觉有点脑洞了,不是很合理。 算法SM4和登录的一样,uid=30的过滤关键字encryptedData 然后点查找差不多30次就能找到。flag{lijing+lijun}
https://s21.ax1x.com/2024/08/02/pkX7FVU.png
https://s21.ax1x.com/2024/08/02/pkX7mx1.png
页:
[1]
2