Lab: SQL injection UNION attack, finding a column containing text
UNION 检索思路
- 各个查询必须返回相同数量的列
→ 用NULL填充UNION SELECT的列,确定查询返回列数
- 每列中的数据类型必须在各个查询之间兼容
→ 用实验室提供的随机值替换每个NULL值,发生错误就是数据类型不匹配,换下一个位置
利用SQL注入
由于系统没有对输入的数据进行过滤、检测就带入数据库中执行sql语句,当我们输入一条恶意数据域原SQL语句拼接、重组得到一条恶意SQL语句,当数据库执行此语句时就会把信息暴露出来
- 表示层:抓取HTTP请求
- 关闭拦截、打开浏览器、访问网站
- 在proxy-HTTP history中选一条title为SQL injection UNION的URL发送到Repeater
谁来告诉我,业务逻辑层在burpsuite里体现在哪一步o(╥﹏╥)o
- 数据访问层:在Repeater栏下的Request修改SQL语句——点击send按钮,此时DBMS将结果给到web浏览器——查看Response状态码
- 业务逻辑层的web浏览器将结果封装成 HTML 格式发送给表示层的 Web 浏览器
- 表示层的 Web 浏览器解析 HTML 文件,将内容展示给用户。如果修改成功,浏览器将会显示实验Sovled
修改语句
‘ +UNION+SELECT+NULL,NULL,NULL--
- 单引号’和注释符--
- sql闭合符:1字符型会自动加入两个单引号。 2数字型不会加入两个单引号。 3被单引号括起来的数据会被当成一个整体。所以加单引号是闭合被自动加上的前一个单引号,后一个单引号被注释符--消解
- UNION语句可以将多个新增查询追加到原始查询,暴露更多数据
三个层划分还是第一次听说,之前的层次理解一直停留在计算机网络自顶向下这本书(需要巩固快忘光了),想知道我在burpsuite的操作是怎么影响到我实验的浏览器上,或者说burpsuite的框架思路是怎么根据这三个层和练习者需求构思的,以上写得还是很模糊,求指点。