实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!

  • 实验目的
  • 实验环境
  • 实验原理
    • 二次排序注入思路:
  • 实验步骤
    • 第一步 在kali平台上使用Firefox访问SQLI的less-24实验
    • 第二步 注册一个新账号
    • 第三步 以账号admin'#密码123456登录后修改密码
    • 第四步 以账号admin密码test登录成功
  • 思考与总结

实验目的

通过本实验理解SQL注入中二次注入漏洞引起的原因,如何利用漏洞进行二次注入。

实验环境

渗透平台:Kali

目标网站:SQLI平台

实验原理

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

二次排序注入思路:

(1)黑客通过构造数据的形式,在浏览器或者其他软件中提交HTTP数据报文请求到服务端进行处理,提交的数据报文请求中可能包含了黑客构造的SQL语句或者命令。

(2)服务端应用程序会将黑客提交的数据信息进行存储,通常是保存在数据库中,保存的数据信息的主要作用是为应用程序执行其他功能提供原始输入数据并对客户端请求做出响应。

(3)黑客向服务端发送第二个与第一次不相同的请求数据信息。

(4)服务端接收到黑客提交的第二个请求信息后,为了处理该请求,服务端会查询数据库中已经存储的数据信息并处理,从而导致黑客在第一次请求中构造的SQL语句或者命令在服务端环境中执行。

(5)服务端返回执行的处理结果数据信息,黑客可以通过返回的结果数据信息判断二次注入漏洞利用是否成功。

源码中的漏洞

此例子中我们的步骤是注册一个admin’#的账号,接下来登录该帐号后进行修改密码。此时修改的就是admin的密码。

Sql语句变为UPDATE users SETpasswd=“New_Pass” WHERE username =’ admin’ # ’ AND password=’ ,也就是执行了UPDATE users SETpasswd=“New_Pass” WHERE username =’ admin’

(1)初始数据库为

注册admin’#账号(密码为123456)

如果此时查看后台数据库,此时的数据库中出现了admin’#的用户,同时admin的密码为111 登录admin’#,并修改密码

可以看到admin的密码已经修改为lcamry

实验步骤

第一步 在kali平台上使用Firefox访问SQLI的less-24实验

网站URL:

http://【靶机IP】/Less-24

第二步 注册一个新账号

点击登录框下方的“New User click here?”链接:

新注册账号名为admin’#密码为123456

第三步 以账号admin’#密码123456登录后修改密码

将密码由原来的123456修改为test

显示密码修改成功。

第四步 以账号admin密码test登录成功

思考与总结

通过本次实验,成功实现了利用源码中存在的二次注入漏洞,不使用admin的正确密码来绕过口令验证登录。

因此在编写代码时一定加强各种web漏洞的检测与防范,保证Web体系的安全。

【less-24】基于SQLI的二次注入相关推荐

  1. SQL注入之二次注入(sql-lab第24关)

    什么是二次注入 二次注入可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入.防御者可能在用户 输入恶意数据时对其中的特殊字符进行了转义处理,但在恶意数据插 ...

  2. 【less-11】基于SQLI的POST字符型SQL注入

    实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险! 基于SQLI的POST字符型SQL注入 实验目的 实验环境 实验原理 实验步骤 第一步 判断是够存在POST型注入点 ...

  3. 二次注入 php,dedecms20140606 二次注入+存储型xss

    红色目录有exp,注入比较鸡肋 目录 dede/soft_edit.php, 存储型XSS漏洞        2 include /memberlogin.class.php 会员笔名二次注入    ...

  4. java二次开发浏览器内核_深入理解基于Selenium的二次开发

    对于做web端自动化测试的人来说,可能接触selenium比QTP还要多,但是我们在做基于selenium的二次开发的时候,经常会说到二次开发是 为了易于维护,很多人可能不懂得维护的价值是什么,和到底 ...

  5. Vue+Vant 基于DatetimePicker进行二次开发,实现yyyyMMdd hh:mm:ss时间选择

    Vue+Vant 基于DatetimePicker进行二次开发,实现yyyyMMdd hh:mm:ss时间选择 1.效果图 2.前提 3.项目结构 4.index.vue 5.timeSelectio ...

  6. 基于Python的二维有限元声波方程正演计算

    基于Python的二维有限元声波方程正演计算 一.基础理论与相关公式的导出 什么是有限元方法? 有限元是计算复杂数学问题近似解的工具.当数学方程过于复杂,无法用正常的方法求解,并且一定程度的误差是可以 ...

  7. SQL 注入之二次注入

    目录 1.原理 二次注入的过程 2.实验过程 (1)查看初始 users 表 (2)注册用户 (3)修改用户密码 3.原因 具体代码 4.防御措施 1.原理 二次注入可以理解为,攻击者构造的恶意数据存 ...

  8. linux 正点原子ov5640_【正点原子FPGA连载】第二十六章基于OV5640的二值化实验-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...

    本帖最后由 正点原子 于 2020-10-26 16:21 编辑 QQ群头像.png (1.78 KB) 2020-10-24 10:50 上传5)关注正点原子公众号,获取最新资料 100846rel ...

  9. CANanlystII 基于python的二次开发实践

    前期,我已经编写过一篇<CANanlystII 基于linux的二次开发实践>这篇博客承接上一篇博客,所以背景知识和测试场景,就不再赘述. 背景知识和测试场景,可以查阅如下: CANanl ...

最新文章

  1. java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...
  2. 永远不要辞职,除非……
  3. java中sizeof函数,C语言中,sizeof运算符有什么作用?
  4. 发送Gmail邀请.
  5. 14.6.3.1 The InnoDB Buffer Pool
  6. 加载慢_解决游戏加载慢不必大刀阔斧升改,教你一个简单有效的方法
  7. UI设计实用素材|扁平化设计的模板
  8. 如何使用LVM逻辑卷
  9. 基于Netty模拟解析Binlog
  10. 数值分析共轭梯度法matlab程序,数值分析11(共轭梯度法).ppt
  11. 监控mysql连接池信息_druid-带监控功能的数据库连接池
  12. Python3.7安装numpy与scipy库(win10)
  13. 自己电脑配置Oracle WebLogic Server
  14. [经验教程]2022网线水晶头插座接头排线接线顺序与方法图解
  15. python简单操作excel
  16. 81个人脸关键点检测
  17. [Python]TempConvert.py(温度转换)解释拓展
  18. hammer.js教程2
  19. 2015年macbookpro更换电池
  20. jquery 表格分页等操作实现代码(pagedown,pageup)

热门文章

  1. thinkphp事务处理以及无效时的解决方案(整理)
  2. python实时处理log文件脚本
  3. 02.规划过程组表格-需求跟踪矩阵
  4. ios 关于自定义navigationItem,实现右侧多个按钮
  5. Ubuntu12.04中eclipse提示框黑色背景色修改
  6. 走迷宫问题 算法竞赛入门经典
  7. Kinetic使用注意点--circle
  8. Sybase:数据类型(对比sqlserver)
  9. 通过德雷福斯模型探寻成长之路
  10. springboot国际化04