Union注入

以portswigger为学习蓝本,选择All Labs,逐个攻破与汇总知识点。
本节知识点汇总:
(1)判断是否有注入
                -直接在GET请求的参数后添加单引号,如果报错,即存在注入,因为引入的SQL语句出错
(2)union select 追加足够多的null: '+union+select+null,null,null,null+--ss,直到报错为止。减少一个null,显示正常响应结果,此时null的数量即为正常请求的语句select出来的列数。--为注释符,之所以后面再追加一个ss,是防止系统会删除结尾的非正常字符。只所以不像一般课程说的直接用select 1,2,3--之类,因为有的数据库不能识别select 1,2,3,但是都支持null。

(3)判断前面语句select的类型
用随机字符串,先替换第一个null,观察结果,再逐个新增地替换null
第一个null替换为'aaaaa‘报错,将它换回来,再将第二个null换成'aaaaa',以此类推


以上几个图可以判断出,第1列和第3列为数字,第2列为字符串,第1列未在网页中显示,第3列作了除以100的操作。我们需要的就是第2列
(4)以下是一个可以显示2列字符串的例子,实验题目已经告诉了表名和要查的就是administrator的密码,所以我们这样写语句,并在右侧直接找到administrator,其对应的条目就是密码。

(5)在一个列中显示所数据,用到数据库的拼接
'+union+select+'1',username||'~'||password+from+users+--+ss(postgresql用双竖线进行拼接)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址: https://medium.com/@nyomanpradipta120/sql-injection...
    coderge阅读 9,014评论 0 0
  • SQL注入原理 :SQL注入就是web应用程序对用户输入数据合法性的没有判断,攻击者可以在web应用程序中(浏览器...
    sky枫阅读 5,299评论 0 1
  • 1.1、自己描述一下sql注入原理 SQL注入指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应...
    皮蛋是个臭蛋阅读 3,772评论 0 0
  • 本文采用的是《Web安全攻防渗透测试实战指南》提供的代码及数据库. 1 环境介绍 union.php 数据库 2 ...
    coderge阅读 4,481评论 2 1
  • --$理论知识$-- --$$、三大范式 第一范式(1NF):字段是原子性的,不可分; 第二范式(2NF):有主键...
    scottyang95阅读 4,046评论 0 4