前言 先知上一个大佬挖的洞,也有了简单的分析 https://xianzhi.aliyun.com/forum/topic/2135 我自己复现分析过程,漏洞的原理比较简单,但是漏洞的利用方式对我而言则是一种新的利用方式.本文对分析过程做一个记录.  正文 分析软件运行的流程 拿到一个需要分析的 php 程序,首先看看客户端的 http 请求是如何对应到程序中的代码的. 首先得找一个分析的开始点,就以 触发漏洞 的 请求为示例把. GET /cash/block-printTradeBlock…
前言 前面已经说明了 漏洞成因,这里介绍一下 exp 的编写. 正文 为了 getshell 或者是 任意文件下载, 我们需要修改 数据库中的 前缀sys_file 表, 所以我们的利用方式如下 使用 sql 注入 获取程序数据库中任何一个表名, 取得前缀 pre 然后向 presys_file 中插入目标路径. 在 mysql 5 中可以使用 information_schema  来获取指定数据库中的表. 在  information_schema   中的 tables 表里面存放着整个…
原文来自SecIN社区-作者:tkswifty 相关背景   在实际的业务开发中,SQL交互往往是业务系统中不可或缺的一项.在Java中提供了类似Mybatis.Hibernate.SpringData JPA等来满足相关的数据库交互需要.但是由于种种原因,开发人员在处理应用程序和数据库交互时,使用字符串拼接的方式构造SQL语句,导致了SQL注入问题.那么有时候面对大量的接口存在SQL注入,迭代困难的时候,过滤器/拦截器便是很多开发人员的首选,通过过滤相关的SQL关键字,避免SQL注入得到进一步…
SQL注入到getshell 通过本地 pikachu来复现  前提: 1.存在SQL注入漏洞 2.web目录具有写入权限 3.找到网站的绝对路径 4.secure_file_priv没有具体值(secure_file_priv是用来限制load dumpfile.into outfile.load_file()函数在哪个目录下拥有上传和读取文件的权限.) 在数据库中查询输入 show global variables like '%secure%'; 首先来看一下网站源码 //这里没有做任何处…
0x00 前言 艰难徘徊这么久,终于迈出第一步,畏畏缩缩是阻碍大多数人前进的绊脚石,共勉. 系统是租车系统,这个系统是Adog师傅之前发在freebuf(http://www.freebuf.com/articles/web/162910.html)的,他审的时候没有发现sql注入,但在评论中有个师傅说有前台sql注入. 那么我就来找找前台的sql注入吧,虽说是java但其实代码审计的点都是通用的,万变不离其宗. 扯远了,这篇文章,算是踏入java代码审计领域的开篇. 0x01 基础环境搭建 源…
0X00 前言 这个案例是某项目的漏洞,涉及敏感的地方将会打码. 很久没更新博客了,放一篇上来除除草,新的一年会有所转变,以后会有更多领域的研究. 下面是正文 0X01 正文 某厂商某个网站用的是thinkcmf 2.2.3. thinkcmf 2.2.3系统是存在漏洞的,参考先知上喵呜师傅写的一篇文章(https://xz.aliyun.com/t/3529 ) 文章中提到了三个漏洞,一个注入,两个模板注入写shell. 但是系统是部署在linux下面的,模板注入是不行的. 所以文章编辑处的s…
近期有很多小伙伴在后台留言想看关于代码审计的文章,其实有关审计的文章网上资源是比较多的,但是从代码审计开始到结束的这类文章却少之甚少. 今天要讲解的ZZZPHP1.61这套审计漏洞比较多,SQL注入漏洞.任意文件删除漏洞.任意文件读取漏洞.远程执行漏洞,当中也借助了漏扫工具,内容涵盖全面,分析透彻,学完定会受益匪浅! 注:文章还是原来的方式,先复现后分析,阅读用时约7分钟. SQL注入漏洞(获取管理员密码) 漏洞复现 payload: GET /search/ HTTP/1.1 Host: 12…
#转载请联系 假如你在京东工作,你要做的任务就是做一个商品搜索的东西供用户使用. 然后你写出了这么一个程序的雏形. import pymysql def main(): conn = pymysql.connect(host='localhost',port=3306,user='root',password='xxx', database='db_jingdong',charset='utf8') cur = conn.cursor() item = input("请输入你要查询的商品编号:&…
前言 最近我在整理安全漏洞相关问题,准备在公司做一次分享.恰好,这段时间团队发现了一个sql注入漏洞:在一个公共的分页功能中,排序字段作为入参,前端页面可以自定义.在分页sql的mybatis mapper.xml中,order by字段后面使用$符号动态接收计算后的排序参数,这样可以实现动态排序的功能. 但是,如果入参传入: id; select 1 -- 最终执行的sql会变成: select * from test1 order by id; select 1 -- limit 1,20…
SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义. 随着B/S模式被广泛的应用,用这种模式编写应用程序的程序员也越来越多,但由于开发人员的水平和经验参差不齐,相当一部分的开发人员在编写代码的 时候,没有对用户的输入数据或者是页面中所携带的信息(如Cookie)进行必要的合法性判断,导致了攻击者可以提交一段数据库查询代码,根据程序返回的 结果,获得一些他想得到的数据. SQL注入利用的是正常的HTTP服务端口,表面上看来和正常的web访问…