当前位置: 首页 > news >正文

DVWA靶场Medium难度部分解析

前言

好久没做题,不想吹牛逼了,消停做点题QAQ

Vulnerability: Command Injection

这题不咋难,老Ping题了

 输个分号ls试试,没回显即被Ban了,试试别的,例如|或者&&

出了,看看源代码

 把分号和和号Ban了

Vulnerability: File Inclusion

文件包含

看看几个文件

 

只有file2要密码。没啥想法,直接Hackbar自带Payload梭了

出了

解个码

Vulnerability: File Upload

文件上传,限制只能传图片

一句话🐎改成图片后缀,抓包改成php

保险点后面加个空格。此处原理请参照:https://www.cnblogs.com/cainiao-chuanqi/articles/14198190.html

Vulnerability: SQL Injection

抓个包看看

在包里看到id=1,判断闭合方式:

输入1'时:

输入1"时:

 输入1和输入2-1时:

 数字型,判断字段数:

1 order by 1#        正常

1 order by 2#        正常

1 order by 3#        报错

两个字段,注库名:

id=-1 union select 1,database()

逐句解释:

首先判断字段数,是为了确定后台数据库中存储数据的方式

id姓名密码
1hh123456
2ss12345
3aa123

如上的表格中字段数为3,即id姓名密码

union select 为联合注入语句,要求左右两侧字段数相同,即:

左侧的-1代表的是网站后台数据库,攻击者要确保union select后面的位数要和前面,也就是系统后台数据库相同,这也是攻击者为什么要先判断字段数的原因。

在本题中,下列语句即不合规则的语句:

id=-1 union select 1,2,3

因为左侧的后台数据库中有两字段数,但右侧1,2,3有三个字段数。

那在正常的语句中就可以将正常显示位中的字符替换成想了解的信息,例如想注出数据库的名字

在本题中就可以

id=-1 union select 1,database()

 前面的-1作用是避免占据显示位,使攻击者无法看到想要的消息。

举例说明:

假设在选择数字进行查询时,网站只会给攻击者一条查询记录。如果以如下语句传输:

id=1 union select 1,database()

则会导致唯一提供给攻击者的记录被id=1这条查询结果所占据,而后面的数据库名就无法看到。 

所以要使用一个网站后台数据库中压根不可能存在的一个ID去查询,例如负数或者一个极大数。

结果如下: 

此处我使用的是

id=1 union select 1,database()

可以看到第一个显示位返回值为id=1的查询结果,第二个显示位则是数据库名:DVWA

后续怎么注不想说了。不过本题有一个坑:

查看源代码,发现有设置函数过滤攻击语句

结果就是攻击者在进行下一步攻击时部分字符被Ban

绕过方式就是16进制编码一下:

别忘了用0x声明字符为16进制。

Vulnerability: Reflected Cross Site Scripting (XSS)

反射型XSS直接模板梭就行了

Vulnerability: Stored Cross Site Scripting (XSS)

前端限制输入字符数量,直接改一下或者抓包就好了:

 存储型的话模板梭一下

没过去,看看源代码:

解释一下:

strip_tags()

strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签,但允许使用标签。

addslashes()

addslashes()函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。
可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了

双写绕呗:

 

下机

http://www.lryc.cn/news/196573.html

相关文章:

  • SVG图形
  • 冒泡排序和简答选择排序
  • leetcode3. 无重复字符的最长子串 [滑动窗口]
  • 软件工程与计算总结(十六)详细设计的设计模式
  • List集合拆分为多个List
  • Hadoop3教程(十三):MapReduce中的分区
  • 笔记本Win10系统一键重装操作方法
  • FilterRegistrationBean能不能排除指定url
  • 【LeetCode】36. 有效的数独
  • 华为---PPP协议简介及示例配置
  • asp.net老年大学信息VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计
  • 模型量化笔记--对称量化和非对称量化
  • PA2019 Terytoria
  • 内容分发网络CDN分布式部署真的可以加速吗?原理是什么?
  • 微服务docker部署实战
  • js实现拖拽功能
  • 数据库主从切换过程中Druid没法获取连接错误
  • 【iOS】Mac M1安装iPhone及iPad的app时设置问题
  • Springboot 启动报错@spring.active@解析错误
  • 【算法挨揍日记】day15——560. 和为 K 的子数组、974. 和可被 K 整除的子数组
  • 数字时代的探索与革新:Socks5代理的引领作用
  • 算法-堆/归并排序-排序链表
  • word 如何编写4x4矩阵
  • INTELlij IDEA编辑VUE项目
  • linux进程间通讯--信号量
  • VS Code连接远程Linux服务器开发c++项目
  • stable diffusion的模型选择,采样器选择,关键词
  • BI零售数据分析:以自身视角展开分析
  • Maven 使用教程(三)
  • 行秋找工作的记录