pikachu练习(七)

1.RCE

先来大致了解一下rce漏洞形成的原因

RCE(remote command/code execute)概述
RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
远程系统命令执行
一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口
比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 而如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器

简单来说,用户在输入完目标ip后可以在后面加上一段代码或是一个命令,在后台对此ip地址进行ping测试时,会被用户通过接口提交恶意代码或命令,从而完成攻击

打开pikachu的exec“ping”,我们在输入框中输入127.0.0.1并ping一下

ping出来的结果是正确的,但是中文全部变成乱码了

查看源码后我们发现,后台对于我们输入的东西并没有做任何处理

所以我们就可以在后面插入一些代码完成攻击了

127.0.0.1 & ipconfig

攻击结果如下

中文仍是乱码,但不影响我们的命令成功运行

ipconfig命令:显示网卡配置信息

之后是exec“evel”,这个更加的简单,随意输入字符,返回文字

evel(输入)会执行我们输入的任意命令,例如我们输入phpoinfo();

我们这里了解一下两个php函数的作用:

(1)phpinfo()函数可以显示出PHP 所有相关信息。是排查配置php是是否出错或漏配置模块的主要方式之一

(2)system("")执行外部程序,并且显示输出

2.file inclusion

简单来理解,不少程序员在web开发过程中,为了提高效率,并且让代码看起来更简洁,会使用“包含”函数功能,比如将所有函数写到function.php中,之后当某个文件需要调用的时候就直接在文件头中写上一句<?php include fuction.php?>就可以调用函数代码

有时由于网站的功能,会让前端用户选择需要包含的文件(或者在前端的功能中使用了”包含”功能),又由于开发人员没有对要包含的这个文件进行安全考虑,就导致攻击着可以通过修改包含文件的位置来让后台执行任意文件(代码)。这种情况我们称为"文件包含漏洞”

我们通过例子来加深理解

首先,我们来到pikachu的file inclusion(local)界面,随意选择一个我们想要查询的球星

查看上方url,可以看到此网站调用了文件名为file1.php的文件,所以如果我们在url中对文件名进行更改,就有可能让网站调用其他的文件,所以我们尝试将文件名改为如下形式

../../../../Windows/System32/drivers/etc/hosts

之后跳转页面

可以看到,配置文件被破解出来

之后我们来了解一下远程文件漏洞包含,首先我们在php中打开allow_url_include

我们还是先随意查询,之后查看url

可以看到它实际上提交的是一个目标文件的路径,我们可以改成一个远端的路径,读取远程文件

将文件名改为如下

http://pikachu/test/yijuhua.txt

这是pikachu提供的测试文件

 之后我们构造一个url,访问远端文件

这时在本地会自动生成一个php文件

然后就可以通过yijuhua.php构造url

127.0.0.1/pk/vul/fileinclude/yijuhua.php?x=ipconfig

之后就可以访问该网页

发现我们刚刚传入的参数x,也就是ipconfig成功运行

3.unsafe filedownload

首先我们进入pikachu的unsafe filedownload,根据提示我们知道点击球员名字即可下载图片

我们可以右键球员名字,并在新标签页中打开此链接

以kobe为例,我们查看此链接url

我们试着更改此url的filename来下载其他球员的照片

可以看到,下载成功

以同样的思路,由于某些网站文件下载功能设计不当,则可能导致攻击着可以通过构造文件路径,从而获取到后台服务器上的其他的敏感文件

4.unsafe fileupload

(1)cilent check

首先我们尝试上传一个php文件

可以发现网站阻止了我们的上传,由于是前端弹窗提醒我们文件不符合要求,那么这个限制极有可能是前端的一段代码导致的,我们打开网站控制台,查看前端代码

 经查询,我们发现这一段代码阻止了我们上传非图片格式的文件

 查看源代码发现,就是这个函数阻止我们上传php格式的文件

所以我们将这里的函数删掉再试一遍

可以看到,成功上传文件,当然这里上传的是无害的php文件,若上传有害文件便是攻击网站的木马

 (2)mime type

先对mime有一个简单的了解

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式

我们先试着传一个php类型的文件

不出意外的无法上传,看来此网站只会使用指定应用程序打开图片格式的文件

那我们就来抓包看一下上传图片格式和php格式的区别

如下为上传图片时抓到的包

可以看到content type为 image/jpeg

接下来我们上传php格式文件

我们将其发送到repeater,既然php的连接类型不支持,那么我们就将其改为与图片文件同类型的

之后send查看结果

可以看到,php文件成功上传,接下来如果想对网站进行攻击,就可以传参,向网站内植入木马了

(3)getimagesize

getimagesize():它是php提供的,通过对目标文件的16进制进行读取,通过该文件的前面几个字符串,来判断文件类型。
getmagesize()返回结果中有文件大小和文件类型。
固定的图片文件,十六进制的头部的前面的几个字符串基本上是一样的,比如说png格式的图片,所有png格式的图片前面的十六进制都是一样的。
所以我们破解的思路为:我们就是要通过伪造十六进制的头部字符串来绕过getimagesize()函数,从而达到上传的效果
我们同样通过例子来加深对这种方法了解

首先就时制作一个图片形式的木马

制作方法如下

首先进入windows的控制台:win+r之后输入cmd,将两文件都放在c\users\86151目录下,方便操作

将php文件与jpg文件复制到一起,形成一个jpg文件

 接下来我们就可以将ccc.jpg上传了

上传成功

我们结合本地文件包含漏洞,上传图片路径,注意相对路径的问题,要在前面加上unsafeupload,便可以运行php程序,完成攻击

5.over permission

越权漏洞概述大致分为两种:平行越权和垂直越权

平行越权:A用户和B用户属于同一级别用户,但各自不能操作对方个人信息, A用户如果越权操作B用户的个人信息的情况称为平行越权

垂直越权:A用户权限高于B用户 , B用户越权操作A用户的权限的情况称为垂直越权

(1)水平越权

首先通过提示里的账号密码登录,点击查看个人信息

我们查看一下url,可以看到这应该是一个get请求,因为在url中我们看到了lucy这一参数

所以我们可以尝试将此参数更改为lili试一下

可以看到,我们成功访问到了lili的个人信息 ,这便是平行越权,我们登录的是lucy的账号,却访问到了lili的个人信息

(2)垂直越权

首先我们登录超级管理员admin

添加用户,并抓包

将其发送到repeater中,之后退出登录,再重新登录管理员账号查看,发现用户信息并没有被添加

我们再登录普通用户账号

可以看到,我们只有查看的权限

刷新页面,在burp获取界面

现在的cookie是普通用户的登录态,我们将其复制下来,并在repeater中查找刚刚发过来的post请求,我们将这里的cookie改为我们刚刚复制的普通用户的cookie,这样一来,我们就是以普通用户态来发送请求

执行后我们可以发现,用户信息已经被增加

我们刚刚是以普通用户的身份去添加用户,这是管理员的权限,我们越权操作,这便是垂直越权

6.目录遍历

漏洞形成原因:
目录遍历漏洞概述
在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“…/”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞

如下实例

首先我们点击此连接

之后更改上方url的title后的内容,更改为../dir.php ,之后访问

可以看到,该网站是存在目录遍历的漏洞的

7.敏感信息泄露

由于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到。 比如:
1、通过访问url下的目录,可以直接列出目录下的文件列表;
2、输入错误的url参数后报错信息里面包含操作系统、中间件、开发语言的版本或其他信息;
3、前端的源码(html,css,js)里面包含了敏感信息,比如后台登录地址、内网接口信息、甚至账号密码等;
类似以上这些情况,我们成为敏感信息泄露。敏感信息泄露虽然一直被评为危害比较低的漏洞,但这些敏感信息往往给攻击着实施进一步的攻击提供很大的帮助,甚至“离谱”的敏感信息泄露也会直接造成严重的损失。 因此,在web应用的开发上,除了要进行安全的代码编写,也需要注意对敏感信息的合理处理

可以看到,我们通过查找网站控制台,直接查到了登录的账号和密码

 8.php反序列化

在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数

serialize()是将对象序列化成字符串,另一个的作用则是相反

比如我们可以将下面的代码运行

<?php
class s{
    var $test="<script>alert('ohhh')</script>";
}
$a=new s();
echo serialize($a);
?>

我们就可以得到如下结果

O:1:"s":1:{s:4:"test";s:30:"<script>alert('ohhh')</script>";}

我们将其输入到输入框内并提交

 可以看到出现弹窗,因为我们将上面的弹出弹窗的代码序列化后,后台又会将这个类反序列化进行使用,从而弹出弹窗

9.XXE

XXE -“xml external entity injection”,既"xml外部实体注入漏洞"。概括一下就是"攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题"也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入

如果一个接口支持接收xml数据,且没有对xml数据做任何安全上的措施,就可
能导致XXE漏洞。
simplexml load string()函数转换形式良好的XML字符串为SimpleXMLElement对象
XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致攻击者可以构造一个恶意的XML
我们输入如下代码

<?xml version = "1.0"?> 
<!DOCTYPE note [     <!ENTITY hacker "xxe"> ]> 
<name>&hacker;</name>

10.不安全的url跳转

不安全的url跳转问题可能发生在一切执行了url地址跳转的地方

我们来到pikachu的不安全的url跳转界面,我们会发现四个超链接,每个都点击一下

点到最后一个时会发现,好像有一个url的值,我们将其修改为百度的网址:https://www.baidu.com/,发现它可以访问百度的界面

熟练后可以的定向转到提前搭建好的恶意站点,窃取用户信息

11.ssrf

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据

数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样
(1)ssrf(crul)

首先我们点击这个超链接,来到这首诗的界面

查看上方url,发现极有可能是这个url导致的跳转,所以我们还是将其更改为百度的网址尝试一下

成功跳转

(2)ssrf(file_get_content)

与前面的区别为file_get_contents函数可以对本地文件进行读取,也可以对远程文件进行读取,同样可以更改为百度的网址,这里就不多做演示了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值