# sql注入
sql注入 我们不管注入的形式是什么我们只要知道和数据库进行交互的时候就有可能出现漏洞我们抓个包直接改包就好了 sql注入会对我们的数据和我们的权限造成危害的
## sql浅谈
SQL注如就是将我们想要查询的sql语句通过参数传递到后台的sql语句中去执行查询我们要的东西。
我们要想想我们能去进行sql注入的条件是什么,我们要将我们的语句去上传也就是我们需要要一个可控变量,然后这个变量是要被后台接受并在数据库中查询的,在之后就是过滤不严谨这是看对方的,如果过滤特别严谨我们几乎是没有办法完成注入的。
## 判断注入点
我们要去完成注入的话我们肯定要去发现一个注入点,找注入点就大同小异了参数后面加and 1=1,and 1=2我们去看他的页面是否正常来判断
## 信息收集
我们在注入的时候我们肯定是要把注入语句给放到对应的参数上面的,不是盲注的话order by判断字段,然后我们就要去找到这个注入点的一些信息,例如数据库,用户权限,版本,操作系统之类的
## 注入操作
我们利用我们的判断的信息在mysql中5.0版本以上就会有一个information_schema
如果是低版本我们就不能用这个思路![](/uploads/upload_2f2d6762b50c0853299278fdc2dbcbd6.png)
我们可以通过他去找到所有的名字,符号“.”这个点表示的是下级例如information_schema.tables,这个就是记录了所有的表的名字的表
同理查列名也一样
在我们的MySQL里面我们找到root权限注入的话的话我们是可以跨站去查询其他数据库里的数据,我们有root权限的注入的话我们就可以查数据库名select * from schemeta,schemata_name
select table_name from information_schema.tables where table_schema="数据库名"这是查表名的
select column_name from information_schema.columns where table_name="表名"这是列名
select 列名 from 数据库名.表名 这是查看数据
## 绕过方式
如果有防护的话我们是要去绕过的那么绕过的方式
1.更换请求方式
2.将我们的注入语句编码
3.等价的关键字替换
4.注释符,特殊符号混用
5.大小写绕过
6.垃圾数据轰炸