HTTP Requests相关
· 阅读约 2 分钟
GET和POST的区别?
- GET直接写在url里面,比如?var1=value1
- POST需要把头改成POST 然后在Body中写

这里的wllm=1就是用的GET,id=5用的post
注意,Body中不能有额外的回车,否则会当成Body的内容
还需要加上Content-Type: application/x-www-form-urlencoded,告诉服务器Body 里的内容是 key1=value1&key2=value2 这种形式
MD5绕过
原理:php弱类型,如果用==连接 那么会将str转为int再比较
解决方式:把==换为===
0e开头弱比较绕过
| Payload | MD5值 (16进制) | 备注 |
|---|---|---|
QNKCDZO | 0e830400451993494058024219903391 | 最经典的绕过字符串之一 |
240610708 | 0e462097431906509019562988736854 | 另一个常用字符串 |
s878926199a | 0e545993274517709034328855841020 | 注意字符串末尾带字母“a” |
s155964671a | 0e342768416822451524974117254469 | 同上,属于sa系列 |
s214587387a | 0e848240448830537924465865611904 | 同上 |
s1091221200a | 0e940624217856561557816327384675 | 同上 |
s1885207154a | 0e509367213418206700842008763514 | 同上 |
s1502113478a | 0e861580163291561247404381396064 | 同上 |
s1836677006a | 0e481036490867661113260034900752 | 同上 |
s1665632922a | 0e731198061491163073197128363787 | 同上 |
0e215962017 | 0e291242626940419845973139586249 | 特殊字符串:本身与它的MD5值相等 |
QLTHNDT | 0e405967825401955372549139051580 | 备选字符串 |
PJNPDWY | 0e291529052894702774557631701704 | 备选字符串 |
NWWKITQ | 0e763082070976038347657360817689 | 备选字符串 |
双重MD5 0e开头
| Payload | 第一次MD5值 | 第二次MD5值 |
|---|---|---|
7r4lGXCH2Ksu2JNT3BYM | 0e269ab12da27d79a6626d91f34ae849 | 0e48d320b2a97ab295f5c4694759889f |
CbDLytmyGm2xQyaLNhWn | 0ec20b7c66cafbcc7d8e8481f0653d18 | 0e3a5f2a80db371d4610b8f940d296af |
770hQgrBOjrcqftrlaZk | 0e689b4f703bdc753be7e27b45cb3625 | 0e2756da68ef740fd8f5a5c26cc45064 |
适用场景:比较逻辑中使用了 md5(md5($str))
数组绕过
PHP中使用 md5() 或 sha1() 函数,参数为string类型,会返回NULL,导致NULL=NULL
科学计数法与自身比较
适用场景:出现 $a == md5($a)
md5(0e215962017)=0e291242626940419845973139586249