医院网站建设价格,商城app开发价格,百度免费建个人网站,做网站530元nmap可以看到对外开放了22,80,3000端口可以看到80端口和3000端口都运行着http服务#xff0c;先从web着手切入TCP/80访问web提示无法连接help.htb#xff0c;在/etc/hosts中写入IP与域名的映射打开只是一个apache default页面#xff0c;没什么好看的使用gobuster扫描网站目…nmap可以看到对外开放了22,80,3000端口可以看到80端口和3000端口都运行着http服务先从web着手切入TCP/80访问web提示无法连接help.htb在/etc/hosts中写入IP与域名的映射打开只是一个apache default页面没什么好看的使用gobuster扫描网站目录看看会不会有什么结果gobuster http://10.10.10.121 /usr/share/wordlists/dirb/big.txt -o dir80.logsupport目录跳转至helpdeskz界面检索发现该项目1.0.2版本存在漏洞在github中发现软件存在README.md文件拼接url访问时下载了相关文件阅读发现md文件中显示该版本为1.0.2HelpDeskZ 1.0.2 - Arbitrary File Upload版本号暂时对上了先看看该如何利用文件上传漏洞阅读漏洞利用代码介绍了漏洞如何利用程序允许上传php文件因为对上传的文件进行了重命名但是重命名只是和时间进行了连接所以如果利用上传文件的时间猜到改过的名字并且知道上传路径的话就可以获取到上传文件的url从而访问url以解析php文件The software in the default configuration allows upload for .php-Files ( ?!?! ). I think the developers thought it was no risk, because the filenames get obfuscated when they are uploaded. However, there is a weakness in the rename function of the uploaded file: /controllers https://github.com/evolutionscript/HelpDeskZ-1.0/tree/006662bb856e126a38f2bb76df44a2e4e3d37350/controllers/*submit_ticket_controller.php - Line 141* $filename md5($_FILES[attachment][name].time())...$ext; So by guessing the time the file was uploaded, we can get RCE. Steps to reproduce: http://localhost/helpdeskz/?vsubmit_ticketactiondisplayForm Enter anything in the mandatory fields, attach your phpshell.php, solve the captcha and submit your ticket. Call this script with the base url of your HelpdeskZ-Installation and the name of the file you uploaded:需要利用代码暴力破解找到文件上传url代码如下先尝试提交一个tiket其他的都是随便填写在附件中上传提前写好的php一句话木马提交后页面显示文件不被允许不用管它运行上文中的exploit脚本即可需要写入文件保存路径和上传文件名一旦找到url就会立马停止运行并将url打印出来验证能否利用上传的shellhttp://help.htb/support/uploads/tickets/a6f05daf9d5edc2b8df6a3752cc71a75.php可以直接在kali中监听然后在https://www.revshells.com/找一个合适的指令反弹一个shell即可TCP/3000访问3000端口时显示如下得到了一个名字Shiv并提示需要给一个查询查看headers发现X-Powered-By标头表示服务器支持Express在google搜索相关的东西发现了一个GraphQL尝试访问/graphql而输入其他的则会报错GraphQL 充当 REST API 的替代品。Rest API 要求客户端向 API 上的不同端点发送多个请求以从后端数据库查询数据。使用 graphQL你只需要发送一个请求来查询后端。这要简单得多因为您不必向 API 发送多个请求单个请求可用于收集所有必要的信息。默认情况下graphQL 不实现身份验证这是由开发人员实现的。这意味着默认情况下 graphQL 允许任何人查询它任何敏感信息都将提供给未经身份验证的攻击者。在https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/graphql中可以找到有关graphql的利用方式拼接url查询找到了username和password字段尝试查询对应内容构造如下url找到了一组用户名和密码在https://crackstation.net/中破解得到密码使用用户名和密码可以登录helpdeskzHelpDeskZ 1.0.2 - (Authenticated) SQL Injection在描述中写道小于或等于1.0.2版本的程序存在sql注入漏洞并且允许未授权访问下载文件HelpDeskZ v1.0.2 suffers from an sql injection vulnerability that allow to retrieve administrator access data, and download unauthorized attachments.首先需要登录系统并创建一个ticket创建ticket如下所示点击上传的附件会将附件下载下来parm[]7之后添加and 11数据包返回正常显示文件中写入的内容而在之后添加and 12数据包返回异常页面显示如下图可以初步判断该处存在sql注入点将该数据包保存至桌面使用sqlmap攻击数据库使用命令sqlmap -r sql.txt -p param[] --batch添加--dbs爆破数据库名得到数据库之后就直接添加--dump爆破数据就好了因为有很多表而且users表中并没有需要的东西直接选择support数据库然后暴力破解等待运行完成即可。之前扫描存在22端口将收集到的和猜测的用户名密码等做成字典然后使用hydra爆破ssh很简单就不演示了得到用户名和密码组合help/Welcome1cve-2017-16995使用用户名和密码组合可以登录ssh可以获取user的flag查阅linux版本信息搜索版本信息发现一个本地提权漏洞首先利用python的http服务将.c文件上传至靶标使用gcc编译exp.c在运行得到的文件即可拿到root权限over