pikachu通关教程(SQL-inject)

本文详细介绍了SQL注入的各种类型,包括数字型、字符型、搜索型、xx型、insert/update、delete注入以及HTTP头注入。通过实际操作展示了如何利用报错注入和布尔型、时间型盲注来探测数据库信息。此外,还提到了宽字节注入的问题及应对策略。
摘要由CSDN通过智能技术生成


数字型注入

虽然题目已经说了是数字型,但我还是以什么都不知道的状态去进行检测
检测是否为字符型
抓包,改包3’ # 这里表示闭合前后单引号,如果是数字型这里会报错
在这里插入图片描述
报错,得了是数字型,也可以看出这里可以使用报错注入
在这里插入图片描述
能使用报错注入,绝不使用联合查询注入
在这里插入图片描述
成功显示错误描述
在这里插入图片描述

字符型注入

先检测是否字符型
没报错证明是字符型
在这里插入图片描述
那么进行字符型的报错注入
’ or updatexml(1,concat(0x7e,database()),1)#
在这里插入图片描述

搜索型注入

搜索型源码一般是 select … from … like ‘%xxx%’ xxx是我们输入的值
尝试输入% (通配符表示所有)
在这里插入图片描述
跟字符型差不多,闭合前后单引号,这里用and是因为’%'能查到数据
输入
’ and updatexml(1,concat(0x7e,database()),1)#
在这里插入图片描述

where 或 like ,第一个条件为true,使用and;为false,则使用or

xx型注入

源码

$query="select id,email from member where username=('$name')";

用括号和引号把变量框起来了,我们拼接sql语句时也要闭合括号,引号
') or updatexml(1,concat(0x7e,database()),1)#
在这里插入图片描述

insert/update注入

源码

if($_POST['username']!=null &&$_POST['password']!=null){
   
//没转义,导致注入漏洞,操作类型为insert
$getdata=$_POST;
$query="insert into member(username,pw,sex,phonenum,email,address) values('{
     $getdata['username']}',md5('{
     $getdata['password']}'),'{
     $getdata['sex']}','{
     $getdata['phonenum']}','{
     $getdata['email']}','{
     $getdata['add']}')";
$result=execute($link, $query);

insert/update目前只用过报错注入,联合查询这里行不通,没有回显
这里先看insert注入,源码可以看到密码进行md5hash,所以sql语句无效,所以只能从其他字段进行注入
输入
’ or updatexml(1,concat(0x7e,database()),1) or ’
前后单引号为了闭合values中的单引号,这里不能用#注释后面的内容,因为需要插入的字段不是一个
在这里插入图片描述

在这里插入图片描述
再看update注入
先注册一个账号
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值