测试url: http://127.0.0.1/thinkphp/thinkphp_5.1.24/public/index.php/index/index/sqli2?id=2 控制器是获取id参数作为进行聚合查询的字段名,如下图所示 看一下存在漏洞的parseKey方法 可以看到,这里直接在$key的前后加上反引号就直接返回了.根据前面几个漏洞的分析我们可以知道parseKey是用来解析字段名的.对于insert和update之类的数据,程序一般是字段名固定,数据和where语句的等于号之后的…
目录 环境搭建 分析 参考 环境搭建 $ composer create-project topthink/think thinkphp-5.1.7 修改composer.json 5.1.* => 5.1.7 $ composer update 分析 这个注入点与5.0.15的注入点位置都在parseData里,都是在解析set-data时直接将用户完全控制的data拼接到SQL语句中. 下面来看漏洞点,首先根据Github的commit记录进行定位 可以看到这里直接删除了default语句块…
分析 与上一个漏洞类似,这个也是前端可以传入一个数组变量,如['exp','123','123'],后端根据array[0]来将array[1]和array[2]直接拼接到SQL语句中. 由于TP只是框架,为了保证应用业务正常运行,不能为主应用做过多的安全防御(如转义.去除危险字符等). 上一个漏洞点存在于处理where语句的parseWhere()处,而这个点则在处理insert和set的data的parseData()处. 本文以insert为例,首先payload如下: http://12…
目录 分析 总结 分析 首先看一下控制器,功能是根据用户传来的id,修改对应用户的密码. 13行把用户传来的id参数送入where()作为SQL语句中的WHERE语句,将pwd参数送入save()作为UPDATE语句. 这里我们假设请求id参数为array("bind","aaa"),pwd参数为bbb. 其中11行12行的意思是获取id.pwd参数,并通过I函数进行过滤.我们跟进一下I() 可以看到,这里首先对参数进行htmlspecialchars过滤,然后在最…
前言: 昨天爆出了ThinkPHP5框架缺陷导致远程命令执行,大佬们都赶上潮流挖洞,小白还是默默学习一下这个漏洞 漏洞影响范围: Thinkphp 5.1.0 - 5.1.31 Thinkphp 5.0.5 - 5.0.23 漏洞产生原因: Thinkphp5.x版本(5.0.20)中没有对路由中的控制器进行严格过滤,在存在 admin,index 模块.没有开启强制路由的条件下(默认不开启),导致可以注入恶意代码利用反射类调用命名空间其他任意内置类,完成远程代码执行. 漏洞分析: 既然是没有正…
thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错,开启调试模式,不报错,怎么解决? 查看Logs日志记录: [ --29T09::+: ] 113.108.11.52 /icloud/index.php?g=user&m=index&a=is_login INFO: [ app_begin ] --START-- INFO: Run Behavior\ReadHtmlCacheBehavior [ RunTime:.000030s ] INFO: R…
适用所有用UC整合 阿里云提示漏洞: discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,.......... 漏洞名称:Discuz uc.key泄露导致代码注入漏洞 补丁文件:/api/uc.php 补丁来源:云盾自研 解决方法:找到文件/api/uc.php​ 中的以下代码: $configfile = substr($configfile, -) == , -) : $configfile; 大概216行,替换成以下: $configfile =…
catalog . 漏洞描述 . PHP SESSION持久化 . PHP 序列化/反序列化内核实现 . 漏洞代码分析 . POC构造技巧 . 防御方案 . Code Pathc方案 1. 漏洞描述 Joomla在处理SESSION序列化数据的时候,对序列化格式未进行严格规范,导致攻击者可以构造畸形HTTP包,实现对象注入 Relevant Link: https://developer.joomla.org/security-centre/630-20151214-core-remote-co…
一.漏洞分析 在分析过程中看到网上已经有人发现semcms V2.4存在过滤不严导致sql注入的漏洞,不知道咋还没改,而且最新版过滤的关键字更少了. 首先查看首页文件index.php的代码 <?php include_once 'Include/web_inc.php'; include_once 'Templete/default/Include/Function.php'; $file_url=""; include_once 'Templete/default/Inclu…
@20119-01-29 [小记] STM32擦除内部FLASH时间过长导致IWDG复位分析…
给我来灵感的博客:感谢:http://blog.51cto.com/xingej/2053297?utm_source=oschina-app 因为使用了注解的类在使用时是通过new出来的,导致注解注入失效.…
移动端设计稿需求是这样的,如下图: 未知的几个头像从左至右并行居中排列. 一般可能直接使用float,但是设计图要求头像排列始终是居中的,于是想到要让它们成为行内元素,然后可使用的方法有flex box,inline-block: 因为是在移动端,于是使用flex box: .user-list { margin: 20px auto; display:-webkit-box; -webkit-pack:center; } .user-list li { width: 46px; height:…
dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话. 危害: 1.黑客可以通过此漏洞来重定义数据库连接. 2.通过此漏洞进行各种越权操作构造漏洞直接写入webshell后门. 云盾团队在dedemcs的变量注册入口进行了通用统一防御,禁止SESSION变量的传入,修复方法如下: 用文本编辑器打开/mnt/…
在thinkphp中的DbMySql.class.php和DbMySqli.class.php中每次连接mysql后,都会自动设置sql_mode=''; mysql_query("SET sql_mode=''",$this->linkID[$linkNum]); 这导致在一个表中,只要有自增主键,在判断插入记录是否成功时,始终返回的是true 关于sql_mode: 查看系统设定中的sql_mode,SELECT @@global.sql_mode; 5.6默认是 STRIC…
早期系统有个缺陷,调用js时少提交一个参数,导致该参数一直是undefined,但是不会引起bug. 对系统进行优化后,这个参数变成了必要的,然后代码一直会走else,undefined值明显不是一个合法值,却仍然走else,导致了奇怪的错误!…
#1对代码的完善的 出现打印代码处缺陷截图: 图片上可以看到,定义的request根本没有定义它就有了.这个是未定义的,会报错的,这本书印刷问题,这个就是个坑,我也是才发现.花了点时间脱坑. 现在发完整的代码: #coding:utf-8 #字典示例 people={ 'Jack':{ ', 'addr':'jiangsu' }, 'Lisa':{ ', 'addr':'nanjing' }, 'Lin':{ ', 'addr':'beijing' } } labels={ 'phone':'p…
导读 据 ZDNET 报道,有超过 45000 个中国网站由于使用 ThinkPHP 框架受到了攻击. 这些攻击针对的是使用 ThinkPHP 构建的网站,ThinkPHP 是一个中国的 PHP 框架,在中国 Web 开发领域非常受欢迎. 所有攻击都是在中国网络公司 VulnSpy 在 ExploitDB 上发布了 ThinkPHP 的漏洞后开始的,这是一个免费托管验证漏洞代码的网站. 验证漏洞代码利用 ThinkPHP 的 invokeFunction 方法,在底层服务器执行恶意代码.该漏洞可…
摘要 近日thinkphp团队发布了版本更新https://blog.thinkphp.cn/869075 ,其中修复了一处getshell漏洞. 影响范围 5.x < 5.1.31<= 5.0.23 危害 远程代码执行 漏洞分析 以下漏洞分析源于斗鱼SRC公众号:斗鱼安全应急响应中心分析补丁:802f284bec821a608e7543d91126abc5901b2815路由信息中controller的部分进行了过滤,可知问题出现在路由调度时.以5.1.23版本进行分析,执行路由调度的代码如…
直接上exp吧,Windows下. <?php namespace think\process\pipes; class Windows { private $files = []; public function __construct() { $this->files = [new \think\model\Merge]; } } namespace think\model; use think\Model; class Merge extends Model { protected $a…
Unicode字符编码规范   http://www.aoxiang.org 2006-4-2 10:48:02Unicode是一种字符编码规范 . 先从ASCII说起.ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字节(8bits) 因此,ASCII编码可以表示的最大字符数是256,其实英文字符并没有那么多,一般只用前128个(最高位为0),其中包括了控制字符.数字.大小写字母和其他一些符号 . 而最高位为1的另128个字符被成为“扩展ASCII”,一般用来存放英文的制…
/*index.php 文件  这一段用于生成模块用 build.php 只能生成诸如 admin hotel 开头为小写字母的模块 如果你设定的 大写开头 如 Hotel Admin 系统就会找不到模块 // 读取自动生成定义文件$build = include '../build.php';// 运行自动生成\think\Build::run($build); */ /////////////////////////////////////////////// //build.php 文件…
问题背景: 在router.php路由配置文件设置了二级域名和路由设置 use think\Route; Route::domain('www','index'); Route::domain('admin','admin'); Route::domain('m','m'); Route::rule('show/:id','index/Article/item'); Route::rule('about_us','index/index/about_us'); 遇到的问题: 访问 www.t.c…
对于jmeter测试生成产生的jtl文件除了使用jemter插件来产生csv或者结果,还可以直接用聚合报告来打开,下面来介绍一下怎么操作. 1. 产生jtl文件 注意,默认情况下聚合报告插件只能分析聚合报告产生的jtl文件,通过命令行-l参数产生的jtl文件会缺失两列,如图: 我们可以通过聚合报告来产生jtl文件,配置如下图 也可以通过修改jmeter的配置,然后通过 -l参数产生jtl文件,将jmeter.properties中相关的配置启用即可,如下图 jmeter.save.saveser…
(非静态)内部类引起内存泄漏的原因         内部类的实现其实是通过编译器的语法糖(Syntactic sugar)实现的,通过生成相应的子类即以OutClassName$InteriorClassName命名的Class文件.并添加构造函数,在构造函数中传入外部类,这也是为什么内部类能使用外部类的方法与字段的原因.所以,当外部类与内部类生命周期不一致的时候很有可能发生内存泄漏.         例如,当使用内部类(包括匿名类)来创建Handler的时候,Handler对象会隐式地持有一个…
问题描述: 最近将IOS书城容器化,切换流量后.正常的业务测试了一般,都没发现问题.线上的错误监控系统也没有报警,以为迁移工作又告一段落了,暗暗的松了一口气.紧接着,报警邮件来了,查看发现是一个苹果支付相关接口调用的curl错误,错误码为"56",错误描述为:“Failure with receiving network data”接收网络数据失败. 机器 : 192.168.1.1当前URL : /xxx/recharge/apple?xxxxxxxxxxxxx接口URL : htt…
漏洞描述:在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏.您也可以登录官方网站更新到最新版本解决.最近用某云服务器的朋友比较多,都来反馈~这个漏洞,现在把修复方案分享下吧 打开/api/uc.php 第一处修改 if(!API_UPDATEBADWORDS) { return API_RETURN_FORBIDDEN; } $data = array()…
前言 前段时间,晴天师傅在朋友圈发了一张ThinkPHP 注入的截图.最近几天忙于找工作的事情,没来得及看.趁着中午赶紧搭起环境分析一波.Think PHP就不介绍了,搞PHP的都应该知道. 环境搭建   本文中的测试环境为ThinkPHP 5.0.15的版本.下载,解压好以后,开始配置.首先开启debug,方便定位问题所在.修改application\config.php, app_debug和app_trace都改成true.然后创建数据库,并且修改application\database.…
这个漏洞本是2014年时候被人发现的,本着学习的目的,我来做个详细的分析.漏洞虽然很早了,新版的Drupal甚至已经改变了框架的组织方式.但是丝毫不影响对于漏洞的分析.这是一个经典的使用PDO,但是处理不当,导致SQL语句拼接从而导致注入的问题.从这个问题,以及以往我见过的很多的漏洞来看,我不得不说,代码底层做的再安全,过滤的再完全,如果程序员的一个不小心,也将会导致重大安全问题的出现.多少的编码绕过,逻辑漏洞正是不小心带来的问题.   0x00 注入的定位   首先我根据网络上已经出现过的EX…
0x00  前言     今天在Seebug的公众号看到了Typecho的一个前台getshell分析的文章,然后自己也想来学习一下.保持对行内的关注,了解最新的漏洞很重要. 0x01  什么是反序列化漏洞     如题所说,这是一个反序列化导致的代码执行.看过我之前文章的人应该不会陌生.PHP在反序列化一个字符串时,相当于激活了之前休眠的一个对象.当在激活的时候,会调用几个魔法方法来进行初始化以及相关操作.而如果魔法方法中存在危险操作,比如数据库操作,文件读写操作,系统命令调用等,那么就有可能…
最近程序需要支持CGSL系统运行,测试中发现相同操作系统的两台机器,编译机运行正常,测试机coredump.core信息汇总如下,可以看出是由于测试机不支持编译后的指令导致的问题: Program terminated with signal 4, Illegal instruction. 0x00007fad269ac973 <+435>: add $0x4,%rdx 0x00007fad269ac977 <+439>: lea -0x1010101(%rcx),%eax =&g…