Sec Hotspot 首页  排行榜  收藏本站  技术博客  RSS
统计信息
已收录文章数量:11205 篇
已收录公众号数量:89 个
本站文章为爬虫采集,如有侵权请告知
本周热门文章
使用msf入侵多层级网络架构   2020.06.01 08:00:32  77
关于站库分离渗透思路总结   2020.05.28 18:37:17  61
Fastjson <=1.2.68 远程代码执行漏洞   2020.06.02 00:00:32  58
铁头娃的渗透测试   2020.05.31 09:49:53  57
使用yarGen提取Linux恶意脚本特征   2020.05.30 18:00:34  55
“Sauron Locker”家族病毒新变种   2020.05.31 18:00:11  52
已收录微信公众号
网信中国 区块链大本营 白说区块链 区块链投资家 区块链官微 区块链铅笔Blockchain HACK学习呀 二道情报贩子 合天智汇 小白帽学习之路 小米安全中心 弥天安全实验室 SAINTSEC SecPulse安全脉搏 TideSec安全团队 360安全卫士 游侠安全网 计算机与网络安全 安全祖师爷 安全学习那些事 腾讯安全联合实验室 黑客技术与网络安全 安全圈 腾讯御见威胁情报中心 Python开发者 Python之禅 编程派 Python那些事 Python程序员 安全威胁情报 吾爱破解论坛 行长叠报 安在 i春秋 嘶吼专业版 E安全 MottoIN 网信防务 网安杂谈 数说安全 互联网安全内参 漏洞战争 安全分析与研究 邑安全 ChaMd5安全团队 天融信阿尔法实验室 安全牛 SecWiki 安全学术圈 信安之路 漏洞感知 浅黑科技 Secquan圈子社区 奇安信集团 奇安信 CERT 国舜股份 雷神众测 盘古实验室 美团安全应急响应中心 瓜子安全应急响应中心 顺丰安全应急响应中心 蚂蚁金服安全响应中心 携程安全应急响应中心 滴滴安全应急响应中心 字节跳动安全中心 百度安全应急响应中心 腾讯安全应急响应中心 网易安全应急响应中心 OPPO安全应急响应中心 京东安全应急响应中心 Bypass CNNVD安全动态 安恒应急响应中心 天融信每日安全简报 奇安信威胁情报中心 看雪学院 黑白之道 水滴安全实验室 安全客 木星安全实验室 云鼎实验室 绿盟科技安全预警 白帽汇 深信服千里目安全实验室 腾讯玄武实验室 长亭安全课堂 FreeBuf 绿盟科技 nmask
一次SQL注入到代码审计之路
本文来自公众号:FreeBuf   2020.05.22 18:00:29



一、找网站SQL注入点

在测试时后发现有一个信息查询框,就是下面这个图片显示的。一般信息查询框会和数据库存在交互。

我输入数字1,会正常提示木查询到相关信息。

那我们使用1’测试一下,发现不弹未查询到相关信息的提示框,也没有任何数据输出,大致判断这个点存在sql注入,并且不对输出报错信息。

大概猜测出SQL语句为 :

select * from A where id ='$_POST['id']';

没有对用户输入的数据做任何过滤。

构造一个闭合语句再次确认一些是否确认存在sql注入。

payload:1’ #

通过上面简单测试,已经确定了,肯定存在sql注入。

二、sqlmap跑一下

将数据包保存到一个文件,直接用sqlmap跑。非常震惊,居然有51个库。

经过查询,查到后台的账号密码,那我就开始找后台的艰辛路程了。

三、找后台

没有找到后台,但是发现robots文件。

从robots上看到是PHPCMS系统

使用PHPCMS系统通用后台地址admin.php,m=admin&c=index&a=login,都不行,测了好就发admin模型下的index控制器是存在,当我们访问的时候就会自动跳到首页,这也该是开发者后来做了修改,专门做防黑的。

四、找通用漏洞

这个步骤就不多说了,我测了已暴光的漏洞,都是不行,说明开发者还是有安全意识的,把漏洞都给修复了。

五、返回sqlmap

还有一种思路就是使用sqlmap —os-shell直接获取shell,但是这个基本上不行的,因为网站的文件基本上都是755权限,没有写的权限就会失败。那我还是抱着一丝丝希望去测试了。

使用sqlmap —os-shell需要知道网站的绝对路径,网站绝对路径可以通过中间件配置文件查看。

首先需要知道网站用了什么中间件,我没有用nmap跑,只用404看到是nginx ,nginx的配置文件 /usr/local/nginx/conf/ngixn.conf

用sqlmap —file-read 去读nginx配置文件。通过配置文件只看到一条默认的配置信息。

需要注意的是如果在nginx.conf文件没有看到有价值的信息,有一种可能是存在,/usr/local/nginx/conf/vhost/网站域名.conf 这个位置,果不其然就是它。

找到了真实的路径,就可以使用 sqlmap —os-shell了,但是正式我当时预料的没有写入权限导致拿shell失败。

六、使用sqlmap读取网站源码

通过上面的思路我们已经知道网站的真实路径,知道了是PHPCMS系统,那我们可以读取网站的文件了。

1、读取路由文件 caches\configs\route.php 查看路由文件没有问题。

2、查看系统文件 caches\configs\system.php (这个文件能看是否开启了域名访问后台)

3、在上面我们说到admin模型下index控制器是能访问,知识在访问的时候会跳转到主页,那我们下载index控制器文件看下。phpcms\modules\admin\index.php ,查看index控制器下的login方法是没有做任何修改的。

七、侧面渗透测试

上面说了一共有51个网站,我随机看了几个,数据库的结构是一样的,说明是同一个建站系统。

那我们用nmap扫一下服务发现有8080服务,这个网站8080端口的网站时dedecms系统搭建的,我正好有后台密码,这样能通过dedecms上传文件。

八、代码审计

通过上面们大概判断是admin模块index控制器有问题。

查看admin模块多了一个MY_index.php控制器,

查看MY_index.php 发现里面有一个构造函数,这个函数大概意思就是会打开这个方法会判断你的right_enter的session值是否为空,若果为空,那么就回到首页,这这是我们刚开始一直打不开后台的原因。

经过看phpcms开发手册(我对这看系统二次开发不太熟悉,我只知道是一个MVC结构的php程序),如果需要对控制器进行二次开发需要在同级目录创建一个MY_*.php文件,大概意思就是创建这个文件后程序在运行index模块时会运行MY_index.php里面的代码。

到这了明白了,因为没有 $ _SESSION[‘right_enter’]值,所以导致登陆不了,所以打开后台首先需要给$_SESSION[‘right_enter’]赋值。经过不懈努力找到了一个正确文件。

这个文件大概意思就是当我运行改文件时会将$_SESSION[‘right_enter’]=1,然后跳转到登陆界面。

*本文作者:lesssafe,转载请注明来自FreeBuf.COM


精彩推荐