0x1 前言

  SQL注入一般分为两类:一阶SQL注入(普通SQL注入),二阶SQL注入 。二次注入不是注入两次的意思,请不要混淆

0x2 什么是二阶注入

  二阶注入是指客通过构造数据的形式,在浏览器或者其他软件中提交HTTP数据报文请求到服务端进行处理,提交的数据报文请求中可能包含了黑客构造的SQL语句或者命令信息。虽然参数在过滤后会添加 “\” 进行转义,但是“\”并不会插入到数据库中,这样就可以利用这个构造一个二次注入。

  二阶注入也称为存储型的注入,就是将可能导致SQL注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以出发SQL注入二次排序注入思

0x3一阶注入和二阶注入区别

一阶注入原理

  (1)一阶SQL注入发生在一个HTTP请求和响应中,对系统的攻击是立即执行的;

  (2)攻击者在http请求中提交非法输入;

  (3)应用程序处理非法输入,使用非法输入构造SQL语句;

  (4)在攻击过程中向攻击者返回结果。

二阶注入原理:

  (1)攻击者在http请求中提交恶意输入;

  (2)恶意输入保存在数据库中;

  (3)攻击者提交第二次http请求;

  (4)为处理第二次http请求,程序在检索存储在数据库中的恶意输入,构造SQL语句;

  (5)如果攻击成功,在第二次请求响应中返回结果。

0X04源码分析

a很明显 在login的时候不能产生注入

那我们看看在创建新用户这里呢 一样进行了过滤

再来看看我们的修改密码的页面呐  诶 好像没有过滤诶

0X05注入开始

1 先创建一个含有注释符的用户 amin'#

(2)看下数据库,成功添加了记录(有人会有疑问,不是单引号进行了转义了吗,是的,虽然转义了,但数据存入数据库中还是单引号,转义只不过是暂时的)

3)从上图中可以看出管理员的密码为admin, 我们现在来进行修改 先解释下源码中的sql语句

  原SQL语句:UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass'

  修改密码sql语句:UPDATE users SET PASSWORD='$pass' where username='admin'#' and password='$curr_pass'

  最后真正执行的sql语句:UPDATE users SET PASSWORD='$pass' where username='admin'

(4)好吧,开始吧,我们利用注册的账户admin'#进行登录,再进到修改密码界面,将123456密码改为000000

切记 学习之路 少就是多 慢就是快

转载于:https://www.cnblogs.com/-zhong/p/10935060.html

sqli-labs(24)相关推荐

  1. SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注

    第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...

  2. SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注

    第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...

  3. SQLi LABS Less 26a 联合注入+布尔盲注

    第26a关是单引号+括号的字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.布尔盲注.两种解题方式. SQLi LABS其他关卡可以 ...

  4. SQLi LABS Less 25 联合注入+报错注入+布尔盲注

    第二十五关单引号字符型注入: 过滤了关键字(and.or),可以使用双写绕过: 这篇文章提供了联合注入.报错注入.布尔盲注三种解题方法. SQLi LABS 其余关卡可参考我的专栏:SQLi-LABS ...

  5. sqli——labs初学者通关详

    目录 Less-1 GET-Error based-Single quotes-String(基于错误的GET单引号字符型注入) Less-2 GET-Error based- Intiger bas ...

  6. SQLi LABS Less-8 布尔盲注

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 第八关是单引号字符型注入,推荐使用布尔盲注 方式一:布尔盲注 第一步.判断注入 ...

  7. SQLi LABS Less-31

    第31关的源码中并未对参数做过多的过滤,只是在参数两边拼接了双引号和括号 在url地址栏中输入 1") and true-- a,使SQL恒成立,页面正常显示 再输入 1") an ...

  8. SQLi LABS Less-30

    第30关使用GET请求传递参数,在url中构造payload即可 后端源码中并没有做什么过滤,只是在参数两边添加了双引号 输入 1" and true-- a,页面正常显示 输入 1&quo ...

  9. SQLi LABS Less-29

    第29关使用GET请求提交参数,在url中构造payload即可 源码中并没有做什么过滤,直接测试注入点即可 在url中输入 1'and true-- a,源码中的SQL会拼接成下面这样 注释后面的内 ...

  10. SQLi LABS Less-26 联合注入+报错注入+布尔盲注+时间盲注

    第26关是单引号字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 目录 一.功能分析 二 ...

最新文章

  1. 统计学习方法 pdf_李航统计学习方法(第三章)
  2. 初步解决博客园代码高亮的一个方案
  3. 小米手环导出心率_这个功能有意思,小米11支持指纹检测心率,没有手环也不怕...
  4. 内存泄漏的原因及解决办法_内存泄漏的场景和解决办法
  5. lan口配置 petalinux_PetaLinux开发文档
  6. 基于 Markdown 的中文文档排版规范
  7. 【排队论 | 数学建模常用模型】
  8. PLC在机械手步进控制中的应用
  9. 分享2个ICON资源链接
  10. imazing是什么?iPhone苹果第三方iOS设备管理软件
  11. 计算机网络总线型结构优,总线型拓扑结构优缺点是什么
  12. 基于人工智能的盲人阅读器
  13. Https网址在线安全检测网站
  14. 维基解密再爆猛料:CIA利用漏洞入侵全球数十亿个人电子设备
  15. 机械臂抓取学习笔记二
  16. 专科咋了?5年时间从三流外包到阿里P6,逆袭成功终于肝出了这份大厂Android研发岗中高级面经!
  17. rancher应用商店的使用
  18. ccs中c语言定义布尔常量,ccs库里面有变量的定义,我在添加了头文件后编译显示没有定义变量呢...
  19. macbook android 屏幕共享,苹果设备小技巧:iPhone,iPad,Mac进行屏幕共享和远程控制...
  20. Kubernetes调度器源码学习(三):Preempt抢占机制、调度失败与重试处理

热门文章

  1. Debian - RAID5搭建(热备)
  2. C++ 堆栈结构(超详解)
  3. K8s CKA认证学习全套笔记
  4. Kubernetes详解(十三)——Pod详解
  5. WPA3 标准被曝严重漏洞,WiFi 密码可遭窃取?
  6. Python学习之==接口开发
  7. CART算法原理及实现
  8. [Angular Tutorial] 3-Components
  9. RHEL-用户基础-管道
  10. 【Cloud Foundry 应用开发大赛】“相助”专业问答系统