
代码审计
niexinming
不积跬步无以至千里
展开
-
java readobject源码解读和反序列化分析
首先看java.io.readobject函数:public final Object readObject() throws IOException, ClassNotFoundException { if (enableOverride) { return readObjectOverride(); } // if nested read, passHandle contains handle of en原创 2020-06-10 15:03:17 · 38425 阅读 · 0 评论 -
python动态代码审计
动态代码审计的用处大型项目代码结构复杂 有些危险的功能隐藏较深(危险的定时计划任务、sqlite数据库任意创建导致任意文件覆盖……) 提高效率,希望通过一些黑盒的方法比较快速的找到漏洞。 常见漏洞分类数据库操作敏感函数的调用和传参文件读写操作网络访问操作正文目录数据库general log 日志 hook关键函数 结合au...原创 2018-08-30 11:04:46 · 4498 阅读 · 0 评论 -
lxml库的xxe防御
我最近在审计内部产品的时候发现一处有趣的代码import lxml.objectifyjioc={}ioco = lxml.objectify.parse(filename)root = ioco.getroot()jioc['short_description'] = root.short_description.__str__()这段代码有xxe漏洞,而且from ...原创 2018-07-13 15:07:48 · 1159 阅读 · 0 评论 -
某产品巧妙的命令执行漏洞
最近在做内部产品的代码审计,发现一处有趣的地方,我把关键代码提取出来,供大家学习思路 <?if(array_key_exists('type',$_REQUEST)){ $type = $_REQUEST['type'];}if(array_key_exists('sha1',$_REQUEST)){ $sha1 = $_REQUEST['sha...原创 2018-03-26 17:55:11 · 941 阅读 · 0 评论 -
Metinfo审计思考
metinfo这个cms很有趣,我觉得可以玩的点也有很多,分享给大家来看 这里主要分析metinfo5.3,首先解压看文件结构 首先要梳理这个cms的结构,先要打开index.php去看入口文件的结构<?php# MetInfo Enterprise Content Management System # Copyright (C) MetInfo Co.,Ltd (ht...原创 2018-03-05 16:46:47 · 1161 阅读 · 0 评论 -
最新然之协同(包含专业版)及喧喧及时聊天系统远程命令执行漏洞详解
[+] Author: niexinming [+] Team: n0tr00t security team [+] From: http://www.n0tr00t.com [+] Create: 2018-2-27 关于漏洞这个漏洞比较有趣,写出来给大家分享一下 这个漏洞影响的版本有ranzhi协同oa<=4.6.1(包含专业版)还有喧喧及时聊天系统<=1.3...原创 2018-02-27 11:15:32 · 2607 阅读 · 0 评论 -
php审计基础四:变量覆盖
(1)extract()函数:extract() 函数从数组中将变量导入到当前的符号表。该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。当代码是:<?php$b=3;$a=array('b'=>'1');extract($a);print_r($b);b的值被覆盖,输出的值变成1当缺陷代码为:<?php原创 2016-09-23 14:34:33 · 2157 阅读 · 2 评论 -
齐博cms老漏洞分析
这天看一些经典的审计的例子,看到齐博cms的2013年的一个老洞,这个漏洞我感觉很经典,这里总结一下,记个笔记这个漏洞是变量覆盖的漏洞首先出问题的地方是fujsarticle.php,下面是是整个文件的内容:<?phperror_reporting(0);extract($_GET);require_once(dirname(__FILE__)."/../data/config原创 2016-11-13 23:19:22 · 5864 阅读 · 0 评论 -
php审计基础一:sql注入
【1】普通sql注入:$sql = "INSERT INTO books(bookname, publisher, author, price, ptime,pic,detail) VALUES('{$_POST["bookname"]}', '{$_POST["publisher"]}', '{$_POST["author"]}', '{$_POST["price"]}', '".time(原创 2016-08-29 11:08:28 · 1277 阅读 · 0 评论 -
php审计基础二:命令执行
system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open(),``这些命令执行的例子很平常就不说了下面是一些有意思的:【1】preg_replace()这个函数:出发条件:01:第一个参数需要e标识符,有了它可以执行第二个参数的命令02:第一个参数需要在第三个参数中的中有匹配,不然原创 2016-08-30 19:42:12 · 1263 阅读 · 0 评论 -
一段csrf利用代码
function test(){ document.getElementById("myform").submit(); }上面是利用post形式进行传递参数下面是get方式进行传递参数为了让上面的代码更具有隐蔽行,把上面的代码保存成1.html,然后下面用框架包含,并且把框架长,宽都设置成0,这样就能杀人于无形了原创 2016-09-09 20:16:38 · 1730 阅读 · 0 评论 -
php审计基础三:php封装协议小总结
【1】php://stdin主要用于php cli 的输入应用:<?while($line = fopen('php://stdin','r')){ echo fgets($line);}?>【2】php://stdout主要用于php cli的输出应用:<?php$fh = fopen('php://stdout', 'w')原创 2016-09-21 12:49:28 · 3225 阅读 · 0 评论 -
php审计基础五:逻辑处理漏洞
(1)in_array函数in_array() 函数搜索数组中是否存在指定的值但是这个这个函数会在比较前做类型转换比如缺陷代码为:<?phpif(in_array($_GET['typeid'], array(1,2,3,4,5))){ $sql="select * from hehe where typeid='".$_GET['typeid']."'"; ech原创 2016-09-23 17:34:09 · 1083 阅读 · 1 评论