渗透过程就是各种安全技术的再现过程,本次渗透从SQL注入点的发现到绕过
sql注入通用代码的防注入,可以说是打开了一扇门,通过sql注入获取管理员密码,获取数据库,如果在条件允许的情况下是完全可以获取webshell。在本文中还对access数据库获取webshell等关键技术进行了总结。
1.1获取目标信息
通过百度进行关键字“news.asp?id=”搜索,在搜索结果中随机选择一个记录,打开如图1所示,测试网站是否能够正常访问,同时在Firefox中使用F9功能键,打开hackbar
图1测试目标站点
1.2测试是否存在SQL注入
在http://www.xxxxx.com/网站中随机打开一个新闻链接地址http://www.xxxxx.com/news.asp?id=1172在其地址后加入and 1 = 2和and 1 = 1判断是否有注入,如图2所示,单击Execute后,页面显示存在“SQL通用防注入系统”。
图2存在SQL通用防注入系统
在网站地址后加入“-0”和“/”进行测试,打开“http://www.xxxxx.com/news.asp?id=1172/”浏览器显示结果如图3所示,打开“http://www.xxxxx.com/news.asp?id=1172-0”后结果如图4所示,明显存在SQL注入。
图3显示无内容
图4显示存在内容
1.3绕过SQL防注入系统
1.post提交无法绕过
在Post data中输入and 1=1 和and 1=2,勾选“Enable Post data”,单击“Execute”进行测试,如图5所示,结果无任何变化,说明直接post提交无法绕过。
图5 post提交无法绕过
2.替换空格绕过
换了POST方式后还是不行,朋友说使用%09(也就是tab键)可以绕过,经过测试还是不行,如图6所示,用%0a(换行符)替换下空格成功绕过,如图7所示。
图6无法绕过
图7成功绕过
1.4获取数据库类型以及表和字段
(1)判断数据库类型
通过and (select count(*) from sysobjects)>0和and (select count(*) from msysobjects)>0的出错信息来判断网站采用的数据库类型。若数据库是SQL-SERVE,则第一条,网页一定运行正常,第二条则异常;若是ACCESS则两条都会异常。在POST中通过依次提交:
[AppleScript]
纯文本查看
复制代码
1
2
|
and
%
0
a
(
select
%
0
acount
(*)%0afrom%0asysobjects)>0
and%0a(select%0acount(*)
%
0
afrom%
0
amsysobjects
)
>
0
|