| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> pikachu靶场 RCE SSRF Unsafe Fileload Over permission -> 正文阅读 |
|
[系统运维]pikachu靶场 RCE SSRF Unsafe Fileload Over permission |
目录 1.RCE概述RCE(remote command/code execute)概述 RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 远程系统命令执行
因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。 你可以通过“RCE”对应的测试栏目,来进一步的了解该漏洞。 1.1.exec "ping"这里可以直接输入127.0.0.1 ?那么我们先了解一下管道符的用处 Windows管道符“|”:直接执行后面的语句。如:ping 127.0.0.1|whoami “||”:如果前面执行的语句出错泽执行后面的语句,前面的语句智能为假 如:ping 2 || whoami “&”:如果前面的语句为假则直接执行后面的语句,前面的语句可真可假 如 ping 127.0.0.1&whoami “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句只能为真。例如:ping 127.0.0.1&&whoami Linux管道符“;”:执行完前面的语句再执行后面的 例如:ping 127.0.0.1;whoami “|”:显示后面语句的执行结果 例如:ping 127.0.0.1|whoami “||”:当前面的语句只能怪出错时,执行后面的语句,例如:ping 1||whoami “&”:如果当前面的语句为假则直接执行后面的语句,前面的语句可真可假。例如:ping 127.0.0.1&whoami “&&”:如果前面的语句为假则直接出错,也不执行后面的,前面的语句只能为真 例如:ping 127.0.0.1&&whoami 知道了这些以后就开始拼接 直接输入127.0.0.1 |whoami 直接执行后面的语句 显示了当前的用户数据 我们输入127.0.0.1 |ipconfig ? ?显示出了ip地址,危害还是很大的. 1.2.exec "eval"我们先了解一下php当中eval()函数的作用 eval()函数中的eval是evaluate的简称,这个函数的作用就是把一段字符串当作PHP语句来执行。 比如说
我们输入php语句
甚至可以使用一句话木马 xss弹窗也是没什么问题 危害很大。 2.SSRF概述SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制 导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据 PHP中下面函数的使用不当会导致SSRF: file_get_contents() fsockopen() curl_exec() 如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤。 你可以根据"SSRF"里面的项目来搞懂问题的原因 2.1 SSRF(curl)进入题目阅读一首诗 ?但是我们的重点在题目中的url上面,可以看到后面有url=一个链接 我们换为百度,它就会自动跳转到百度去 我们在目录下创建一个txt文件? ? 看url链接能否访问到该文件 ?成功访问了该文件 2.2 SSRF()?进入题目 url当中有点细微差别file=一个url链接 它和前面的逻辑是一样的,不同的是它这里使用file_get_contents函数进行文件的读取执行,而file_get_contents函数可以对本地文件进行读取 继续访问之前的文件 访问成功? 3.Unsafe file download3.1Unsafe file download文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。 所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心! 你可以通过“Unsafe file download”对应的测试栏目,来进一步的了解该漏洞。 进入题目 ,它提示我们点击球员的名字就可以直接下载图片 我们点击科比的名字抓包 ?我们可以看到filename=kb.png 我们把filename的值改为ai,阿伦艾佛森 ?放包发现ai.png成功下载 ?在 windows 上,我们可以 “../” 的方式进行目录跳转,读取其他目录下的文件。 我们把filename改为 ../down_nba.php 发现可以成功下载 ?3.2Unsafe file upload?概述文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。 所以,在设计文件上传功能时,一定要对传进来的文件进行严格的安全考虑。比如: 你可以通过“Unsafe file upload”对应的测试栏目,来进一步的了解该漏洞。 3.2.1?客户端check进入题目? 我们先尝试一下上传一句话木马 页面弹出提示框说明是前端验证? 我们先把php文件改名为png格式上传然后抓包 ?在这里把filename改为one.php 放包,成功上传 我们根据它提供的相对地址拼接绝对地址 ?我们使用蚁剑客户端进行连接 ?我们已经成功进入了网页的后台 ?3.2.2服务端check(MIME type)进入题目 根据题目我们可以大概知道,这道题上传的验证是在后端进行的 我们先尝试上传一句话木马,但是提示说只能是jpg等格式的? 而且像上一关一样修改filename 也是不管用的 MIME Type,就是该资源的媒体类型。? 媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如: 从上一关我们可以知道,上传png文件时 Content-type=image/png 所以这次我们抓包修改文件的类型再上传 ?放包上传文件,上传成功,拼接绝对路径利用蚁剑连接 http://pikachu/vul/unsafeupload/uploads/one.php 连接成功? ?可以查看所有文件 ?3.3.3?getimagesize()getimagesize()这个函数功能会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求的。 这就需要用到图片马了,将图片和一句话木马结合从而绕过检验 ?上传成功 ?用蚁剑链接 后就可查看目录 ? 4.Over permission概述 如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。 一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。 因此,在在权限管理中应该遵守: 你可以通过“Over permission”对应的测试栏目,来进一步的了解该漏洞。 4.1水平越权首先可以先了解一下水平越权的原理? 水平越权:指相同权限下不同的用户可以互相访问 提示当中已经告诉了我们一些用户名与密码,我们登录账号查看个人信息 ?可以查看到lucy的具体信息,我们可以看到url当中username=lucy,那么我们将它改为其他的人呢 ?可以看到我们仅仅修改了username 就可以访问到kobe的个人信息并未输入账号和密码 这就是水平越权。 4.2 垂直越权其实按照字面意思也很好理解,垂直越权和水平越权的差别 垂直越权就是指使用权限低的用户可以访问到权限较高的用户,看看低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能。 我们先输入pikachu这个权限比较低的用户 可以看到只有查看权限? 再登录管理员账号 ?可以发现区别是url当中变为了admin,而且多了删除和添加的管理员权限 那么我们再次登录普通的账号,尝试垂直越权,拿到管理员的权限 ?将url 当中的user改为admin 但是翻车了,我们尝试用管理员的账号创建一个用户,复制它的发包信息看看能不能用普通用户也创建新用户 ?
接着放包,发现已经创建好了一个test用户 在另一个网页中打开piakchu登录普通用户,抓包发送刚刚复制的request ?抓包,黏贴 ? 放包之后发现第二个包也是amin.php 最后返回登录页面 ?但是也已经成功用普通用户创建了一个用户 ? ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 5:52:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |