纵横杯-大家一起来审代码出题笔记

admin 2022年3月7日20:02:25评论85 views字数 3251阅读10分50秒阅读模式

前言


在夏日炎炎的八月(南方),说忙也不是很忙(日常划水),就接了几个出题任务。出这个题目的初衷是当时有一个项目要做代码审计,就来了灵感,打算出一下代码审计的题目。没参加比赛,赛后看了下解题情况情况,是web中解题数量倒数第二的那个,看见很多师傅们都解决了题目,应该来说也是不难。看了下几位师傅们发的wp发现都是非预期解。

 

预期解

1. 下载源码,使用vscode对源码进行审计,发现部分页面存在sql注入漏洞,经过测试,无法获取有用数据

2. 在adm1n文件夹中admin_weixin.php发现存在任意文件写入漏洞,存在过滤但是可以绕过,过滤关键代码

foreach (array_keys($_POST) as $arg )    {        $$arg=preg_replace("/a|e|i|o|u|s|t/i","",$$arg);    }

下面还有一段补充代码

      

$str.="echo dwz ?>";    $str=preg_replace("/dfn/","define",$str);

3. 发现可以使用变量覆盖,使得dwz为flag

4. 访问网站adm1n管理员后台,使用弱口令admin/admin进行登入。进行登入,访问adm1n/admin_weixin.php

5. 在打开admin_weixin.php页面之前启动该包工具burp suite,点击提交后抓取数据包,将dwz参数之前的任意一个参数填入payload:");define("dwz",`nl%20/fl*`,"

6. 发送数据包,访问/data/admin/weixin.php即可获取flag

 

解题情况


截止12月17日24点官方已经停止收wp。今天去公司的路上看了下师傅们发在群里的wp,发现解决的大多都是使用非预期解https://github.com/ciweiin/seacms/issues/10。这个锅我背了,赶紧去翻了翻当时的出题记录,的确是非预期解。大意了,没有闪。师傅们太强了,膜拜师傅们(狗头保命)。给师傅们造成了不好的解题体验深感抱歉。

 

非预期


if($action=="set"){   $weburl= $_POST['weburl'];   $token = $_POST['token'];   $open=fopen("../data/admin/ping.php","w" );   $str='<?php ';   $str.='$weburl = "';   $str.="$weburl";   $str.='"; ';   $str.='$token = "';   $str.="$token";   $str.='"; ';   $str.=" ?>";   fwrite($open,$str);   fclose($open);   ShowMsg("成功保存设置!","admin_ping.php");   exit;}
  1. admin_ping.php文件存在weburl参数和token参数,都是使用POST方式直接获取。

  2. 获取后添加php文件格式,最后未经过滤直接连接,然后写入到data文件夹下的admin/ping.php下

  3. 3.  传入flie_get_content()直接读取flag文件,或是使用一句话木马,在读取flag文件

 

 

制作过程

在网上找了一个入门级别的php框架,找了几个发现seacms比较适合,于是就开干了。先下载来安装一下,看一下目录,发现挺多的


drwxr-xr-x  37 staff  staff   1184  8 19 18:23 .drwxrwxr-x@  4 staff  staff    128  8 19 18:52 ..drwxr-xr-x  83 staff  staff   2656  8 19 18:45 adm1ndrwxr-xr-x   3 staff  staff     96  8 19 18:23 articledrwxr-xr-x   3 staff  staff     96  8 19 18:23 articlelist-rwxr-xr-x   1 staff  staff   2626  8 24  2019 ass.phpdrwxr-xr-x   6 staff  staff    192  8 19 18:23 comment-rwxr-xr-x   1 staff  staff    961  4  6  2019 comment.phpdrwxr-xr-x  14 staff  staff    448  8 19 18:23 data-rwxr-xr-x   1 staff  staff    353 12 11  2018 desktop.phpdrwxr-xr-x   3 staff  staff     96  8 19 18:23 detail-rwxr-xr-x   1 staff  staff   3037  1 25  2019 diy.php-rwxr-xr-x   1 staff  staff   4016  2  7  2020 err.php-rwxr-xr-x   1 staff  staff    257 12 11  2018 exit.php-rwxr-xr-x   1 staff  staff  16958 11 30  2019 favicon.ico-rwxr-xr-x   1 staff  staff  10100  9 12  2019 gbook.php-rwxr-xr-x   1 staff  staff   1522  4 14  2019 i.phpdrwxr-xr-x  33 staff  staff   1056  8 19 18:23 include-rwxr-xr-x   1 staff  staff   2131 12 20  2018 index.phpdrwxr-xr-x  11 staff  staff    352  8 19 18:23 jsdrwxr-xr-x   3 staff  staff     96  8 19 18:23 list-rwxr-xr-x   1 staff  staff   6002 12  1  2019 login.php-rwxr-xr-x   1 staff  staff  36859 12  2  2019 member.phpdrwxr-xr-x   3 staff  staff     96  8 19 18:23 newsdrwxr-xr-x  15 staff  staff    480  8 19 18:23 pic-rwxr-xr-x   1 staff  staff   9089  6 24  2019 reg.php-rwxr-xr-x   1 staff  staff   4458  4 20  2019 s.php-rwxr-xr-x   1 staff  staff  16839  8 24  2019 search.php-rwxr-xr-x   1 staff  staff   7701  8 24  2019 so.php-rwxr-xr-x   1 staff  staff   6613  4 20  2019 tag.phpdrwxr-xr-x   3 staff  staff     96  8 19 18:23 templetsdrwxr-xr-x   3 staff  staff     96  8 19 18:23 topicdrwxr-xr-x   3 staff  staff     96  8 19 18:23 topiclistdrwxr-xr-x   6 staff  staff    192  8 19 18:23 uploadsdrwxr-xr-x   3 staff  staff     96  8 19 18:23 videodrwxr-xr-x   3 staff  staff     96  8 19 18:23 weixin-rwxr-xr-x   1 staff  staff   8697  4 14  2019 zyapi.php

随后找一下网上相关的漏洞,发现whojoe师傅这篇文章分析的挺好的,

https://www.freebuf.com/vuls/241106.html,就以这篇文章为基础对文章中提到的漏洞进行修补。

 

  1. 对sql注入对处理是使用低权账号,限制账号访问数据表的权限。

  2. 对于命令执行的修补,在admin_ip处使用正则匹配,非ip格式直接退出。

  3. 在admin_notify处添加过滤规则

  4. 在admin_weixin 添加了部分可绕过的过滤规则

 

 

总结

出题时,得注意所有的漏洞情况,出了预期解就有点尴尬了。打铁还得自身硬,只有好好学习才能跟得上师傅们前进的脚步。目前一直在学习java代码审计,感兴趣的师傅们可以一起学习。


参考连接

https://www.freebuf.com/vuls/241106.html

https://github.com/ciweiin/seacms/issues/10


本文始发于微信公众号(NOVASEC):纵横杯-大家一起来审代码出题笔记

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月7日20:02:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   纵横杯-大家一起来审代码出题笔记http://cn-sec.com/archives/494811.html

发表评论

匿名网友 填写信息