随笔分类 - 代码审计
摘要:[TOC] drupal .开头文件名 文件上传 通过diff 8.8.1的补丁,很容易发现修复点,位于 补丁在文件名两侧进行了trim(..., '.'),结合漏洞通告可以知道应该是文件名过滤不严导致.开头的文件上传。 原生模块分析 漏洞点位于 函数 全局搜索调用本函数的地方,发现只在 中被调用。
阅读全文
摘要:[TOC] Thinkphp clearFlashData(); $sessionId = $this getId(); if (!empty($this data)) { $data = $this serialize($this data); $this handler write($sessi
阅读全文
摘要:[TOC] 前言 这一个需要管理员权限的二次SQL注入,利用起来比较鸡肋。这里仅分享一下挖洞时的思路,不包含具体的poc。 分析 漏洞触发点在components/com_content/models/articles.php:L458 通过访问 可以到达漏洞点,但是state我们控制不了,因为首先
阅读全文
摘要:[TOC] 0x00 前言 没有 0x01 分析 这个漏洞被描述为“未授权访问私密内容”,由此推断是权限判断出了问题。如果想搞懂哪里出问题,必然要先知道wp获取page(页面)/post(文章)的原理,摸清其中权限判断的逻辑,才能知道逻辑哪里会有问题。 这里我们直接从wp的核心处理流程main函数开
阅读全文
摘要:[TOC] 0x00 first 前几天joomla爆出个反序列化漏洞,原因是因为对序列化后的字符进行过滤,导致用户可控字符溢出,从而控制序列化内容,配合对象注入导致RCE。刚好今天刷CTF题时遇到了一个类似的场景,感觉很有意思,故有本文。 0x01 我打我自己之 序列化问题 关于序列化是什么就不再
阅读全文
摘要:测试url: http://127.0.0.1/thinkphp/thinkphp_5.1.24/public/index.php/index/index/sqli2?id=2 控制器是获取id参数作为进行聚合查询的字段名,如下图所示 看一下存在漏洞的parseKey方法 可以看到,这里直接在$ke
阅读全文
摘要:[TOC] 环境搭建 $ composer create project topthink/think thinkphp 5.1.7 修改composer.json 5.1. = 5.1.7 $ composer update 分析 这个注入点与5.0.15的注入点位置都在parseData里,都是
阅读全文
摘要:分析 与上一个漏洞类似,这个也是前端可以传入一个数组变量,如['exp','123','123'],后端根据array[0]来将array[1]和array[2]直接拼接到SQL语句中。 由于TP只是框架,为了保证应用业务正常运行,不能为主应用做过多的安全防御(如转义、去除危险字符等)。 上一个漏洞
阅读全文
摘要:[TOC] 分析 首先看一下控制器,功能是根据用户传来的id,修改对应用户的密码。 13行把用户传来的id参数送入where()作为SQL语句中的WHERE语句,将pwd参数送入save()作为UPDATE语句。 这里我们假设请求id参数为array("bind","aaa"),pwd参数为bbb。
阅读全文
摘要:[TOC] Thinkphp
阅读全文
摘要:前几天看了水泡泡老哥的zzcms的审计,在论坛上一搜发现这个cms有不少洞。听说很适合小白练手,所以来瞅一瞅。不知道我发现的这个洞是不是已经被爆过了,如果雷同,纯属巧合。 一.Insert注入,直接返回数据 先从默认页index.php入手: 跟进inc/conn.php看一下: 发现include
阅读全文