死在山野的风里,活在自由的梦里
get注入方式比较常见,主要是通过url中传输数据到后台,带入到数据库中去执行,可利用联合注入方式直接注入
运用场景:数据不敏感
安全性不高
长度有限2kb
速度非常快
POST
post提交方式主要适用于表单的提交,用于登录框的注入,直接传递给服务器
方法:利用BurpSuite抓包进行重放修改内容进行,和get差别是需要借助抓包工具进行测试,返回结果主要为代码,也可转化为网页显示
安全性高
长度不限
速度不快
get,post都可以接收
概念:超全局变量 PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可以用,这些超全局变量是:
$_REQUEST(获取GET/POST/COOKIE)COOKIE在新版本已经无法获取了
$_POST(获取POST传参)
$_GET(获取GET传参)
$_COOKIE(获取COOKIE传参)
$_SERVER(包含了诸如头部信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组)
什么是Header头?
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机响应消息。 这两种类型的消息有一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。 HTTP的头域包括通用头,请求头,响应头和实体头四个部分
header注入,该注入是指利用后端验证客户端信息(比如常用的cookie验证)或者通过header中获取客户端的一些信息(比如User-Agent用户代理等其他header字段信息),因为这些信息在某些地方是会和其他信息一起存储到数据库中,然后再在前台显示出来,又因为后台没有经过相对应的信息处理所以构成了sql注入。
在cookie里面写注入语句
当进行SQL注入时,有很多注入会出现无回显的情况,其中不回显得原因可能时SQL语句查询方式问题导致,这个时候我们需要用到报错或者盲注进行后续操作,同时在注入的过程中,提前了解其中SQL语句可以更好的选择对应的注入语句。
select 查询数据
例如:在网站应用中进行数据显示查询操作
select * from user where id=$id
delete 删除数据
例如:后台管理里面删除文章删除用户等操作
delete from user where id=$id
insert 插入数据
例如:在网站应用中进行用户注册添加操作
inser into user (id,name,pass) values(1,'zhangsan','1234')
update 更新数据
例如:后台中心数据同步或者缓存操作
update user set pwd='p' where id=1