代码审计
文章平均质量分 84
代码审计
bfengj
vegetable web dog
展开
-
[Writeup]2021强网拟态 Give_me_your_0day
前言当时没能做出来,当时想到了mysql恶意服务端读取文件,但是没能读成功,不知道是为什么。今天看到Firebasky师傅的github更新了writeup,也是学习了一波。解法1当时没有拿Seay去扫,单纯的自己肉眼审install.php。自己审这种前后端没有分离的代码,只会去看不涉及到前端的PHP代码,就出了问题,遗漏了漏洞。拿Seay扫一下第一条就能扫到,install.php608行的这个文件包含漏洞: <?php requir原创 2021-10-29 21:48:25 · 501 阅读 · 0 评论 -
2021长城杯线下 Web-Work 复现
前言最近可以说是有许许多多的事情,各种奇奇怪怪的事情,还有一些别的事情。从7月末开始,一直到10月初,有的事情,也已经,彻底结束了叭。也是时候回到以前的生活,慢慢学习了。长城杯也是一段时间之前的比赛了,当时颜总把源码发我,我没有怎么看题,现在慢慢学习,也把这几个月的时间里错过的东西都慢慢补回来。是一道Java的代码审计题目,是SpringBoot。拿源码在本地搭建出来,弄好数据库之后开始代码审计。Writeup先看一下pom.xml:<?xml version="1.0" encoding原创 2021-10-26 00:00:13 · 874 阅读 · 0 评论 -
Thinkphp5.0.24 反序列化rce链学习
Thinkphp5.0.24 反序列化rce链学习这个链子是出现在9月份的0CTF中,一直没来得及学习,今天晚上抽出时间来看一下这个链子。之前的5.0.x版本的反序列化链是写文件getshell,需要有一个可写的目录才行,而这条新链子不需要写文件,直接可以rce。分析整个链子的前部分后后部分都是老套路了,只是中间的部分稍微改了一下。链子的前部分和老链子一模一样:https://blog.csdn.net/rfrder/article/details/114644844、在运行到thinkphp/原创 2021-10-25 20:07:20 · 1729 阅读 · 1 评论 -
OurPHP3.3.1审计与测试
OurPHP3.3.1审计与测试目录遍历漏洞还是先看一下后台关于模板的代码,首先发现对于传入的路径没有做waf,导致了目录遍历。漏洞从client/manage/ourphp_filebox.php`的第134行开始:}else{ if(empty($_SESSION['ourphp_out'])) { $file = listDirFiles('../../templates/'.$_GET['path']); $file2 = '../../te原创 2021-06-11 15:28:38 · 827 阅读 · 5 评论 -
Kitecms审计与测试
Kitecms审计与测试刚打完国赛,还是不想看Java。。。正巧马上就要开始期末复习,这段时间也不知道该干什么,那就再看看新的CMS叭,继续跟着Y4师傅学习。这是一款基于thinkphp5.1.41的CMS(虽然官方上写的还是5.1.39),所以我的第一反应就是phar yyds,hhh。任意文件上传漏洞(复现)拿到这个CMS的时候我大致看了一下cnvd已经爆出来的洞,感觉除了XSS这种东西,其他的命令执行,文件上传之类的漏洞感觉全都是在后台,所以我第一反应就是这又是一个纯数据库操作和前端的前台。原创 2021-06-11 15:11:21 · 852 阅读 · 1 评论 -
KYXSCMS1.3.2审计与测试
KYXSCMS1.3.2审计与测试再过一个多星期就要彻底进入期末了,将会迎来20多天的悲惨的期末复习时光,基本上算是只能一直取突击,学不辽安全了。所以最近学Java就学的很烦躁,基础知识看不下去了,那就来看一下CMS叭。想了一下,正好想起来Y4师傅时不时会发一些CMS的审计文章,所以我就跟着Y4师傅的文章来进行学习。选了这个KYXSCMD的getshell来进行复现,但是没想到复现之后自己审计,又审出了这么多新的东西。任意文件写入的getshell(复现)下载源码:http://bbs.kyxscm原创 2021-06-06 16:45:43 · 756 阅读 · 1 评论 -
[HMBCTF 2021]EzLight 复现
前言去突击了一个星期的计算方法期末考试,中间耽误了很多比赛题目的复现。今年红帽最后的那道EzLight赛后也有了writeup,直到今天才有时间去复现一下。参考了郭院士和颖奇师傅的文章:lightcms后台RCE漏洞挖掘lightcms全版本后台rce 0day分析他们的文章讲的已经非常非常的详细了,因此我这里就不做过多的解释了。就是跟着大师傅们的思路,也自己把这个代码的流程看了一遍,因此我这篇文章其实没啥看的,就是我自己记录一下我的复现过程,师傅们看郭院士和颖奇师傅的文章就可以了。复现网上直原创 2021-05-18 16:58:29 · 884 阅读 · 8 评论 -
bluecms 1.6 审计与渗透测试
前言听My0n9s师傅说bluecms比较适合审计入门,正好也到了2周审计一个CMS的时候了,就从网上下载了这个CMS的源码,开始审计与渗透测试。源码下载:bluecmd安装安装的时候主要先看看哪些目录是可写的,到时候如果可以传马或者SQL注入可以写马啥的,至少对于可用的目录知道一些。而且也大致看一下,cache是缓存,upload估计就是上传的路径了,backup是备份,说不定可能存在源码泄露啥的,complie就不清楚了,好像就是smarty?。之后就是正常的安装,而且安装那里的用户名和密原创 2021-05-07 09:11:47 · 1658 阅读 · 4 评论 -
phpmyadmin文件包含漏洞复现(CVE-2018-12613)
前言一个非常经典的漏洞了,以前只是直接拿payload打,还没认真的在本地复现过,看过漏洞的代码到底是怎么回事,所以今天从github上下载phpmyadmin4.8.1,到vps上然后复现一波,看一下代码的问题。复现漏洞出现在index.php的第61行:存在任意文件包含,但是需要进入if才可以。一层一层的来看,首先target不为空,而且是字符串,这很容易满足,而且不以index开头,而且不在黑名单中:$target_blacklist = array ( 'import.php'原创 2021-05-04 22:30:51 · 1044 阅读 · 1 评论 -
[RoarCTF 2019]Simple Upload
知识点文件上传代码审计thinkphp的upload()WP打开看看,是个文件上传: $uploadFile = $_FILES['file'] ; if (strstr(strtolower($uploadFile['name']), ".php") ) { return false; } $upload = new \Think\Upload();// 实例化上传类 $upload-原创 2021-04-23 00:44:49 · 1116 阅读 · 1 评论 -
熊海CMS1.0 代码审计
前言有一段时间没碰Web了,感觉都快忘完了。。。又到周末,既然要坚持2周审一个CMS,那就在周末再审一个CMS了。还是简单的CMS,慢慢熟悉各种CMS的构造,慢慢学习审计和测试和思路。SQL注入(存在)select注入(后台)本来以为这个CMS的SQL防护能好一点。。。结果感觉和屎一样。。。看个最简单的吧,后台登录:/admin/?r=login:0防护。。。直接union联合注入,即可进入后台:user='union select 1,2,3,'c4ca4238a0b923820dcc509原创 2021-04-17 14:36:50 · 776 阅读 · 0 评论 -
[网鼎杯 2020 半决赛]faka
前言同样是nepctf,遇到了网鼎杯这题faka的加强版,考虑到实在太菜了,没参加过今年的网鼎杯,所以先去把网鼎杯的faka这题复现一下,源码可以很容易从网上找到。WP拿seay审了一下,基本上啥都没审出来啥,就审出来了一个最简单的那个任意读。不过这个任意读还需要登录,因此还需要利用其他的漏洞。未授权添加账号和提升权限漏洞代码位于application/admin/controller/Index.php中的info方法: public function info() {原创 2021-03-22 12:01:47 · 2148 阅读 · 0 评论 -
Thinkphp6.0 反序列化漏洞
准备创建工程:composer create-project topthink/think thinkphp6.0.1 "require": { "php": ">=7.1.0", "topthink/framework": "6.0.1", "topthink/think-orm": "^2.0" },composer updateindex控制器:<?phpnamespace app\controller;原创 2021-03-12 19:36:43 · 2004 阅读 · 0 评论 -
Thinkphp6.0 任意文件写入
准备创建代码:composer create-project topthink/think thinkphp6.0.1 "require": { "php": ">=7.1.0", "topthink/framework": "6.0.1", "topthink/think-orm": "^2.0" },composer updateThinkPHP6默认不开启session,我们需要修改app\middleware.ph原创 2021-03-12 09:36:42 · 2110 阅读 · 0 评论 -
Thinkphp5.0 反序列化漏洞复现
前言环境创建:composer create-project topthink/think=5.0.14 thinkphp5.0.14 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.14" },composer update原创 2021-03-11 19:39:04 · 1939 阅读 · 0 评论 -
Thinkphp 5.0.9 SQL注入
前言创建:composer create-project topthink/think=5.0.9 thinkphp5.0.9 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.9" },index控制器这样写:<?phpnamespace app\index\controller;class Index{ public function index()原创 2021-03-10 19:19:36 · 828 阅读 · 0 评论 -
Thinkphp cache缓存函数远程代码执行漏洞
前言环境创建:composer create-project topthink/think=5.0.10 thinkphp5.0.10 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.10" },composer update影响版本:3.2.3-5.0.10index控制器里写个cache()函数: public function cache() {原创 2021-03-10 09:46:20 · 1736 阅读 · 0 评论 -
Thinkphp5 文件包含漏洞
前言本次漏洞存在于 ThinkPHP 模板引擎中,在加载模版解析变量时存在变量覆盖问题,而且程序没有对数据进行很好的过滤,最终导致 文件包含漏洞 的产生。漏洞影响版本: 5.0.0<=ThinkPHP5<=5.0.18 、5.1.0<=ThinkPHP<=5.1.10。创建:composer create-project topthink/think=5.0.18 thinkphp5.0.18 "require": { "php": ">=5.原创 2021-03-09 19:36:18 · 1506 阅读 · 2 评论 -
Thinkphp5 聚合函数 SQL注入
前言这次的SQL注入问题在于使用了mysql的聚合函数:本次漏洞存在于所有 Mysql 聚合函数相关方法。由于程序没有对数据进行很好的过滤,直接将数据拼接进 SQL 语句,最终导致 SQL注入漏洞 的产生。漏洞影响版本: 5.0.0<=ThinkPHP<=5.0.21 、 5.1.3<=ThinkPHP5<=5.1.25composer create-project topthink/think=5.1.25 thinkphp5.1.25 "require": {原创 2021-03-09 14:03:58 · 462 阅读 · 0 评论 -
Thinkphp 5.1.16~5.1.22 order by SQL注入
前言这次的SQL注入点在parseOrder()方法中,影响版本是5.1.16~5.1.22。创建:composer create-project topthink/think=5.1.22 thinkphp5.1.22 "require": { "php": ">=5.4.0", "topthink/framework": "5.1.22" },composer updateindex控制器写法: public function原创 2021-03-08 21:39:42 · 511 阅读 · 0 评论 -
Thinkphp 5.0.10 SQL注入
前言开始tp5.0.10的SQL注入,漏洞点位于parseWhereItem()方法。先创建工程,再改composer.json,再composer update。composer create-project topthink/think=5.0.10 thinkphp5.0.10 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.10" },composer update原创 2021-03-05 23:32:45 · 1473 阅读 · 0 评论 -
Thinkphp 5.1.17 SQL注入
前言之前审计的是5.0.15的parseData函数漏洞导致的SQL注入。这次审的是5.1.17的parseArrayData函数漏洞导致的SQL注入。影响版本:5.1.6<=ThinkPHP<=5.1.7 (非最新的 5.1.8 版本也可利用)。composer create-project topthink/think=5.1.17 thinkphp5.1.17然后改一下composer.json,再composer update就好了。然后设置一下database.php:原创 2021-03-05 17:18:30 · 1033 阅读 · 1 评论 -
Thinkphp5.0.15 SQL注入
前言刚把tp5的RCE给审的差不多了,审的很爽,接下来审一下thinkphp5各个版本的SQL注入。代码不用说了,composer先下载下来。composer create-project topthink/think=5.0.15 thinkphp5.0.15下载来的%99都是版本不对,改一下composer.json然后composer update就可以了。index控制器那里写一下insert语句:class Index{ public function index()原创 2021-03-05 10:16:33 · 1643 阅读 · 2 评论 -
thinkphp5 RCE漏洞复现
前言之前看的是tp3的SQL注入,现在开始审计一下tp5的一些SQL注入和RCE。先看一下RCE,毕竟thinkphp最广为人知的漏洞就是RCE。首先是源码的下载,我从这里下载:thinkphp下载这里我下载的是thinkphp5.0.22完整版,如果下载核心版的话可能会有一些代码的缺失。debug模式开启下的RCE和之前tp5.1的反序列化一样,RCE的执行点也都是重要的request类。关键在于这个filterValue()函数:/** * 递归过滤给定的值 * @param mixe原创 2021-03-03 12:02:28 · 3269 阅读 · 4 评论 -
Joomla 3.4.5 反序列化漏洞复现
准备Joomla3.4.5的源码可以在下面的链接中下载到:Joomla 3.4.5源码然后phpstudy建一下复现环境即可。要求php版本<5.6.13,原因如下:在php>=5.6.13版本中修复此问题,5.6.13版本以前是第一个变量解析错误注销第一个变量,然后解析第二个变量,但是5.6.13以后如果第一个变量错误,直接销毁整个session。然后直接访问网页,创建网站,创建数据库即可,环境即搭建成功。使用vulhub同样可以:vulhub:joomla3.4.5反序列化原创 2021-03-02 17:38:02 · 656 阅读 · 0 评论 -
thinkphp3.2.3 SQL注入漏洞复现
前言具体代码可以composer或者github或者一些其他网站上下载。然后本地创建一下数据库,改一下数据库的配置,在ThinkPHP/Conf/convention.php下面:由于比较懒,我直接用sqli-labs的数据库了,在IndexController.class.php里面写个查询:class IndexController extends Controller { public function index(){ $data = M('users')->原创 2021-02-24 21:49:53 · 5187 阅读 · 1 评论 -
CTFshow-WEB入门-代码审计
前言开始快乐的代码审计篇。web301源码下载下来分析一波,大部分都是无用的文件,主要还是在checklogin.php那里:$sql="select sds_password from sds_user where sds_username='".$username."' order by id limit 1;";$result=$mysqli->query($sql);$row=$result->fetch_array(MYSQLI_BOTH);if($result->原创 2021-02-22 15:59:40 · 1676 阅读 · 2 评论 -
Thinkphp5.1 反序列化漏洞复现
前言开始tp5.1的反序列化链的复现,这个链我上学期10月份的时候尝试复现过,但是当时的自己代码审计能力,反序列化的能力也都实在太菜,不足以理解这个链。这个链相比yii2,laravel5.7,5.8的那些链,长度和难度都提高了很多,思维的跳跃也很,自己也要想办法把它啃下来。源码下载:thinkphp5源码或者去github上下载也可以。然后写个控制器:<?phpnamespace app\index\controller;class Unserialize{ pub原创 2021-02-18 15:21:34 · 4088 阅读 · 0 评论 -
laravel5.8 反序列化漏洞复现
前言上一篇文章复现了一下laravel5.7的反序列化,这篇复现一下5.8的反序列化。还是github上下载源码:laravel5.8往composer.json的require里面加上"symfony/symfony": “4.*”,然后composer update。如果提示 Allowed memory size of bytes exhausted,参考这篇文章:运行 composer update,提示 Allowed memory size of bytes exhausted然后还原创 2021-02-17 20:18:20 · 1653 阅读 · 0 评论 -
laravel5.7 反序列化漏洞复现
前言之前接触yii2,接下来就遇到laravel5.7的反序列化了,复现了一下laravel5.7的反序列化链,学习了一波。去github上下载源码:laravel5.7,下载下来的可能回没有vendor目录,需要在根目录执行composer install就可以了。...原创 2021-02-17 15:25:11 · 2006 阅读 · 3 评论 -
yii2框架 反序列化漏洞复现
前言最近学习PHP反序列化的时候遇到了yii2反序列化的利用,就顺便搭了一下环境,跟着网上各种大师傅们的文章进行了一波复现和学习,提高自己代码审计的能力。漏洞出现在yii2.0.38之前的版本中,在2.0.38进行了修复,CVE编号是CVE-2020-15148:Yii 2 (yiisoft/yii2) before version 2.0.38 is vulnerable to remote code execution if the application calls unserialize()原创 2021-02-16 15:08:08 · 3647 阅读 · 4 评论 -
[GKCTF2020]EZ三剑客-EzNode
前言之前buu上刷到这题的时候,感觉是个前端的题,就绕过没看了。今天在某平台做红包题遇到了基本上考点一样的题目,在学长的指引下又把这题给做了一下,总的来说还算比较友好,因为我不会前端我也大致能看懂这题是啥意思。WP进入环境是个计算器,看一下源代码:const express = require('express');const bodyParser = require('body-parser');const saferEval = require('safer-eval'); // 2019原创 2021-02-16 12:02:31 · 898 阅读 · 2 评论 -
MiniCMS漏洞审计
前言在之前ctfshow的DJBCTF里的虎山行那题结合着MiniCMS出了题目,当时的自己没有审这么多代码的经验,没有做出来。赛后也仅仅是照着大师傅们的WP沿着出题人自己加的那些漏洞点给复现了一遍,但是对于MiniCMS并没有认认真真的审一遍。因为这个CMS的代码真的比较简单易懂,对于想要开始审计CMS的自己来说是一个非常好的开胃菜,所以就大致把这个CMS的代码看了一遍,复现了一下这个CMS的种种CVE漏洞。引用一下结构:│ build.php│ index.php 整个项目的入口,首先引入核原创 2021-01-29 21:57:39 · 895 阅读 · 0 评论 -
CTFSHOW 月饼杯 web
web1_此夜圆<?phperror_reporting(0);class a{ public $uname; public $password; public function __construct($uname,$password) { $this->uname=$uname; $this->password=$password; } public function __wakeup()原创 2021-01-29 13:52:57 · 492 阅读 · 0 评论 -
[强网杯 2019]Upload
前言又是一道反序列化的题目,而且也是thinkphp,一审起来才感觉到自己的代码审计能力就像屎一样,反序列化的链都找偏了。这个寒假不审个几万行代码我tm就去吃屎,草。WP进入环境看到那个favicon就想不会是thinkphp吧,扫了一下目录果然是thinkphp:www.tar.gz可以下载到源代码,对controller审计一下。<?phpnamespace app\web\controller;use think\Controller;class Index extends原创 2021-01-25 17:57:33 · 321 阅读 · 0 评论 -
DJBCTF2021-WEB-虎山行
前言刚结束的DJBCTF的一道web题,当时看到这么多代码太懒了没去审,其实这题并不难,自己还是太菜了,没去审的另一个原因也是自己太菜了觉得自己审不出来什么,还是需要克服困难去挑战自己啊。而且这个题目也比较有意思,关于那个phar反序列化的知识和一个大师傅讨论后也学习到了超级多的东西,对于phar反序列化的理解也是加深了许多。WP虎山行有2题,本来是1题,但是因为被minicms本身install.php这个鸡肋的RCE给非预期了,所以又出了第二题。不过拿install.php秒第一题是真的爽(笑)。原创 2021-01-25 14:31:12 · 413 阅读 · 0 评论 -
[GYCTF2020]EasyThinking
知识点thinkphp6.0.0-6.0.1的任意文件写入绕过disable_functionsWP很有意思的一道题目,因为自己对于thinkphp实在不了解,也是踩了好多坑才做了出来。首先进入环境进行简单的信息收集,发现存在www.zip,可以下载源码。下载下来发现是thinkphp6,版本是6.0.0。经过搜索,发现该版本存在任意文件写入,和session有关,参考文章如下:ThinkPHP 6.0.1 漏洞分析(任意文件操作)对下载下来的源码简单审一下,重点是这个Member.php原创 2021-01-21 18:22:44 · 524 阅读 · 0 评论 -
[BJDCTF2020]EzPHP
知识点base32url编码绕过preg_match在非/s模式下的绕过$_POST和$_GET的优先级PHP伪协议。sha1函数的数组绕过。create_function()的代码注入WP这个题目真的挺难的,尤其是最后的create_function代码注入,整个题目的考点太多,真的就是看学的扎实不扎实了,是一道非常好的题目。首先进入环境,f12发现:比较明显的base32,解码后得到1nD3x.php。访问一下,可以得到源码:<?phphighlight_file(原创 2020-12-27 19:34:26 · 1286 阅读 · 0 评论 -
[HarekazeCTF2019]encode_and_encode
知识点json_decode解析字符串的时候编码转换绕wafWP这题盯着源码看了大概1个多小时愣是没看出什么门道,主要还是做题的时候有点困精力不集中,睡了一觉再看这题直接就秒了,用的是今年西湖论剑easyjson的姿势,果然还是要多睡觉!!!首先进入环境,点一下源码直接审:<?phperror_reporting(0);if (isset($_GET['source'])) { show_source(__FILE__); exit();}function i原创 2020-12-26 20:32:01 · 271 阅读 · 1 评论 -
[SWPUCTF 2018]SimplePHP
知识点PHP的phar反序列化的POP链构造。WP这是一道不难的phar反序列化,我个人觉得卡着我的点就是最后要读的文件名,我写程f1ag.php读不出来,一看WP是/var/www/html/f1ag.php,才恍然大悟。首先进入环境,发现有文件读取和文件上传两个功能,而且f12提示了flag在f1ag.php里面,因此大概率就是要去读f1ag.php这个文件,但是文件读取过滤了f1ag,不能直接读,但是可以把其他文件的源码都读到,比较有用的三个文件源码如下:<?php//file.原创 2020-12-24 21:17:53 · 518 阅读 · 0 评论