WEB攻防-ASP-数据库漏洞
前面叽里咕噜开发整了还挺久,然后挖了很多坑,现在终于是要填坑了,从这一期开始就开始注重漏洞方面的知识了,学习各种漏洞利用,天天日别人网站哈
不过其实还有个java没学,那个还是挺重要的,但是吧最近确实没啥空,这个以后再补充吧,先把我们学过的都理一理,直接开始上正片
关于ASP呢其实现在基本都见不到了,基本是已经被淘汰了,但是呢也还是有一些网站还是用的这个语言,所以这里也提一下,以防遇到不会哈
首先是关于他默认安装的问题
由于大部分ASP程序与ACCESS数据库搭建,但是ACCESS无需连接,都是在脚本文件中定义配置好数据路径就可以使用,不需要额外配置安装数据库,所以大部分提前固定好的数据库路径,如默认路径,当攻击者知道数据库的完整路径,可以远程下载后解密数据实现攻击
首先我们知道,我们php和mysql配合搭建项目的时候,是需要你自己准备好环境的,需要创建好数据库然后配置账号信息,并且写入到配置文件中引用才能正常的连接到数据库
比如现在我想重新搭建一个z-blog的数据库,然后我首先创建一下数据库名和账户,先去连接一下看看
输入相同的账号密码,就可以连接到数据库
然后现在我们创建好后去网站部署一下
可以看到到确实连接成功并且在数据库中创建了表,然后如果要使用就要使用sql语句对应数据库查询信息
但是ASP搭建的项目就不用这样麻烦,我们随便找一个asp语言搭建的网站
可以看到他里面就直接把数据库文件放在网站根目录中,然后在配置文件中直接引用这个路径即可,这样搭建的项目不就是默认搭建吗,默认路径不作修改直接使用,那别人不就直接可以把这个数据库文件用命令直接下载了吗,我们搭建一下这个项目看看,这玩意太老了我服了,使用iis搭建,细节就不说了
打开就是这个样子,可以知道我们没有进行任何配置但是他可以直接使用,不用php项目先要配置数据库文件,然后他数据库文件里内置了用户信息
我们可以看到他这个数据库的所有信息,这时候我们知道了他的数据库路径,我们直接访问他就会直接下载
直接就能访问到当前的数据库信息,但是我这里不知道为啥点下载找不到,反正原理就是这样的,这太老了,我也整不会了
这就是我们说的默认搭建问题,直接访问数据库信息
APS中间件-CVE漏洞复现-短文件-解析-写权限
这个漏洞来来自CVE-2015-1635
简单就是由于http.sys这个协议中有点问题,未正确分析特殊设计的http请求会导致此漏洞,成功利用此漏洞可以在系统账户的上下文中执行任意代码
影响的系统是iis6.0版本以上且从win7到server2012都有这个问题,这个漏洞虽然不涉及到权限问题,但是会导致网站服务器直接崩溃蓝屏,导致业务无法正常进行,还是个有点严重的漏洞的
我们来尝试复现一下,这里攻击机使用的是kali
首先搜集一下攻击语句
curl 192.168.153.140 -H “Host: 192.168.153.140 ” -H “Range: bytes=0-18446744073709551615”
这里的IP是要替换成服务器IP的
可以看到在倒数第三行中出现了报错提示,具体的漏洞自行搜索哈,这都是很老的东西了
然后知道有漏洞后我们启动小工具,
msfconsole
用到的攻击模块是这个
设置一下攻击的地址
set rhosts 192.168.153.140
现在我的win7正常运行,现在来攻击一下,直接run
直接是给我win7干重启了,byd漏洞
好悬没给我电脑踹开线了,这就是关于这部分的漏洞
短文件
这部分其实就涉及到windows的小机制导致的,我们首先看看短文件是啥
在你dir查看文件的时候,输入一个/x可以看到有些文件的一些另一个名字,可以看到他是截取了文件名的前面几位加上~组成的名字,然后这个漏洞的作用就是来获取一些从外部无法直接访问的重要文件,并且获取有关应用的基础结构信息
直接介绍两个工具,是来扫描这个短文件名的
IIS_shortname_Scanner-master
两个项目都是这个名字,只不过一个使用python写的一个是java写的,两个都用一下吧
首先我们来看看python的使用,直接在后面加上ip地址就可以了
可以看到他确实扫到了一些东西出来,当然这只是其中一种手段,目录这中东西他扫的不全换个工具不就是了,所以说他扫出来到底有啥用呢,骗你的,其实真的没啥大用,因为用别的目录遍历更好使,这个短文件名还要你猜,这只能让你知道一点点信息
试一下另一个
叽里咕噜也没啥用,太鸡肋了哈,感觉只能在红温的时候用一下
文件解析
在iis6.0版本中,他的文件解析是有问题的,普通的asp他可以解析,但是如果是畸形的文件名比如1.asp.jpg这种后缀是图片,但是他也会把他当asp文件解析,来来来你看看,这是什么七八iis,所以我们现在来实验一下
我们用哥斯拉生成一个后门文件先丢到服务器的根目录上去
可以看到正常连接是没有问题的,但是现在我要是把文件后缀改一下,他能正常解析吗
可以看到此时他是一个图片文件
但是依旧访问,所以说这个臭臭iis,坏滴很,真要是被你碰到了这就是经典的文件绕过哈,
他还有一种情况是什么呢,是只要在asp目录下的文件都会直接被当成asp文件解析,我嘞个雷,诗人
首先我们随便创一个目录,把前面的木马文件改成图片格式
这时候很显然,由于他是图片格式,肯定是连不上的,但是就像前面说的,*asp目录,所以再把这个目录改个名
现在目录叫1.asp看看会发生甚么事
来来来,这是什么七八,所以说这个iis6.0啊非常的坏,而且7.0也有,不过他有补丁,而且本来就老,现在很难碰到了,前面做的小实验是我们直接把文件丢上去的,现实肯定没那么容易啊,但是一个网站怎么能没有文件上传呢,所以我们来整一个文件上传绕过来上传webshell
写权限错误
这个漏洞是iis<=6.0版本才有的,因为管理员的误操作,把目录的写权限开启了然后还有webDAV也设置为允许了,而这个
webDAV是什么呢,简单来说就是通过http协议来支持在远程服务器上创建、读取、更新和删除文件。
既然是http协议支持的,我们来看实验
首先我们知道,我们目录下没有这个heike.asp文件,但是由于我们有对目录的写权限和管理权限,我们可以直接使用put修改一个文件的内容,但是由于没有这个文件,他就会直接创建出我们这个文件,我们使用发包工具对网站进行操作
补豪,我的服务器,有小黑客!!!
可以看到由于错误的权限设置,导致普通用户也可以对目录进行操作,那更别会说小黑客了,直接是给你日爆了
但是现在关于asp的项目非常少了已经,所以基本上用不上哈,这部分就不多说了
sql注入
ACCESS由于他没有管理员账号密码这种东西,所以一般都直接注入猜解中一班采用字典猜解表和列获得数据,由于access数据库在当前基本没有什么漏洞了,所以这里就直接使用工具,至于后续学习php,java这种,我们就采用手工注入,加强学习捏
假如说你现在拿到了一个项目,然后去访问的时候,可以看到典型的id什么什么的,这种就是最典型的数据库查询了
可以看到他这个url你点来点去他都是有后面这个id参数,说明这些信息他都是存储在数据库中的,然后我们随便来注入一个命令
3 -1
可以看到他错误了,现在要是输入一个最基础的永远为真呢
可以看到他就有回显了,说明这里有sql注入漏洞,我们来看看源码,看他是什么原因造成的
这里可以明显的看到他对我们的输入没有任何的转义过滤,并且使用的就是最基础的sql语句查询哈
比如说
http://192.168.153.146:81/Pic.asp?classid=3 //这是我们访问网页的url, select top 1 * from aboutusclass where classid="&classid&" order by OrderID //这是原语句,当我们访问网页,他就会变成
前面我们讲登录操作的sql注入的时候简单的提到过,如果不进行转义直接拼接的话,攻击者直接构造语句不就直接把数据库信息全都套走了吗
比如我们现在来对他进行一个构造
select top 1 * from aboutusclass where classid="&3&" union select #"&"order by OrderID
就跟我们前面学过的一样,通过闭合前面的语句,然后注释后面的语句,他不就只执行中间我们构造的查询语句了吗
当然这里我们只是引出这个sql注入,每个数据库中的语法不同,所以构造payload的时候也有所区别,虽然我们叫他sql注入,但总的来说,他的名字是叫数据库注入,是对数据库进行操作,更深入的会在后面两个语言中细讲
并且要说的是并不是说你随便输入他报错了他就是有注入,有的时候是别人设计的容错页面,这个我们当初也是设计过的,所以应该是要了解的,不然又是对着空气一顿日
就拿我自己的网站来说,你说这里报错了难道是有漏洞吗,并不是,这就是他接受到错误的值了然后由代码跳转的,而不是数据库报错了。
现在我们用工具来测试一下,说到工具那必然是
sqlmap
不过我这里有个python写的小工具,后面kali也是一样的操作
这里python建议使用低版本
E:\python3.8\python.exe sqlmap.py
启动就是这个样子咯
然后使用参数
E:\python3.8\python.exe sqlmap.py -u " --tables
首先就是-u然后接上有注入点的地方,后面是获取表名
首先我们知道数据库的基础的三个东西,首先肯定就是表名,知道表名之后我们就去差字段,知道对应字段之后我们就去查对应值,这个工具也是这样使用的
然后这里由于前面没有找到表名,现在需要靠字典来猜了,我们就选择他内置的字典
可以看到他就直接跑到了admin表了,基本上到这里就可以直接结束了,而且win跑的太慢了,这里建议还是用kali跑
现在我们既然知道了表名,我们就来查询表中的字段,后面我就都用kali了
sqlmap -u "http://192.168.153.146:81/Pic.asp?classid=3" -T admin --columns --batch
列出admin表里的字段
既然都知道字段了,那现在就来愉快的破解密码吧
sqlmap -u "http://192.168.153.146:81/Pic.asp?classid=3" -T admin -C username,password,data --dump --batch
这就给跑出来咯,这密码一看就是md5加密哈
所以说这个后台,不就直接被拿下了吗~~~
这里由于没有钱钱去破解这种特殊的md5值哈,所以就不破解了,效果是做出来了,骗你的,其实我有小工具
但是这是我知道密码的前提下加进数据库的哈,只要你的字典够6,什么密码你不能破解
既然我们破解了用户的账号密码,那不就可以登录了吗
账号密码是破解出来了,那后台呢,我不到啊(狗头)
现在我们是一个攻击者,你已经成功的拿到了后台登录的密码,但是找不到后台了,现在不就可以用上我们前面说的短文件扫描或者目录扫描吗,这就派上用场了哈
首先我们试一下短文件寻找路径
现在确实是扫到了一些,然后我们就可以看一下这个文件特征,看看哪个是我们需要的,我觉得那个upfile很可疑,去访问一下看看
哎嘿,他访问这个地址的时候居然跳转了,然后就到后台路径了?哈??好奇怪哦,其实不奇怪,有可能是因为他这个文件是他后台的一个功能,但是你没登录,所以直接重定向了,这不也是一种寻找后台的办法吗,哎嘿,登录看看
哎哟嘿,这就给我干进来了,我嘞个雷
这个试好了,那目录扫描更是不在话下了
直接御剑开扫
可以看到我们刚刚用短文件名扫到的文件,他跳转到登录界面去了,这不是一样的用吗,这目录就直接日穿了哈,然后就又可以愉快的日他了
除了目录扫描,其实还有一种办法知道他的目录,那就是爬虫,你直接是把整个网站都爬一遍,这目录更是手到擒来
这里就不说了
既然我们拿到了管理员账户,为了他突然改密码或者别的啊,我们就在网站上丢个webshell上去,看看哪里有上传文件的地方,直接撇,目录里已经有一个upload.asp了,那里明显就是上传文件的地方,直接访问
现在我们就尝试去上传webshell,看能不能行,这里就又回到了我们前面说过的文件上传漏洞了,我们测试一下
首先直接上传木马试试
哪有那么容易哈哈
再试试图片
又出了这个错误,这个应该是文件大小限制了,传一个小图片看看
果然不出所料哈,我们查看一下上传路径
可以看到直接是此路径,那就直接去访问看看
也是直接访问到了,说明什么,他对文件类型和大小都进行了限制,所以怎么绕过他呢~
前面我们不是提过文件解析漏洞吗,我们抓包实验一下
抓到他上传文件的包之后可以看到,这个杠就是他上传的路径,我们随意加个abc看看会发生什么
可以看到他名字就被被修改了,那要是我们改成前面说的文件解析漏洞的油饼文件名呢
然后访问一下看看
可以看到虽然里面什么都没有但是他还是解析了,那要是发包的时候里面带入我们的木马信息呢
然后重新发送几次,然后去连接看看
可以看到,直接是成功的注入进去了
访问刚刚我们上传的webshell就可以看到我们发包时候传入的参数,所以我们就连接成功了,到这里,这个网站整个的权限不就被我们完全的拿下了吗。刚好不就完整的复习了一下这一期上面学过的小芝士吗
虽然但是基本上没有实战意义了,但是起码也了解了这种有漏洞的网站然后怎么一步一步日穿这个网站的,这不就是我们学习渗透测试的目的吗
非常不好用(尼玛!退钱!)~~~~~
未完待续~
