[TryHackMe]NahamStore(Top 10漏洞靶场)

1.侦察

nmap扫描一波

一个商城

给出的域名为nahamstore.thm

先进行子域名枚举

使用ffuf进行子域名枚举

ffuf -w /home/kali/Desktop/payloads/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.nahamstore.thm" -u http://10.201.97.174 -t 100

-w字典, -H枚举目标域名 FUZZ为枚举位置, -u 为目标URL -t 设置线程

注意: 当访问不存在的域名时或许也会返回200响应码,我们需要找出其响应大小 通过-fs参数过滤出正确存在的域名

-fs 

你会注意到我的响应大小不是固定的,而是动态的,不过没关系,通过观察发现这些错误的响应大小在910-940之间浮动 

最终payload

ffuf -w /home/kali/Desktop/payloads/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.nahamstore.thm" -u http://10.201.97.174 -t 100 -fs 910-940

将他们添加到/etc/hosts 主机配置中

​
10.201.97.174   marketing.nahamstore.thm
10.201.97.174   shop.nahamstore.thm
10.201.97.174   stock.nahamstore.thm

​


注意到生成PDF功能

当输入1时 会显示不存在 id应该是带入代执行了

我们知道在Linux中 ` 反引号包围的内容为要执行的命令 系统会执行该命令 并且将结果替换命令

在参数5后面加上`id``whoami`等

成功执行了

考虑用反弹shell接管

使用在线网站生成反弹shell命令

反弹shell生成器

记得编码成URL

发现了三个隐蔽的域名

172.17.0.1      nahamstore-2020-dev.nahamstore.thm
172.17.0.1      nahamstore-2020.nahamstore.thm
10.131.104.72   internal-api.nahamstore.thm

添加到host中 将ip改为靶机的

除了使用gobuster 我们也可以使用dirsearch工具

maurosoria/dirsearch: Web path scanner

得到第一问答案

2.XSS

 <script>alert(1)</script>

1.直接获取UA头导致的XSS

在创建订单的时候 我们发现订单细节处会读取创建时的UA头

通过将UA头改为<script>alert(1)</script>

可实现XSS攻击

2.参数未转义

在返回信息进行XSS失败 但是发现URL存在一个参数

尝试替换为JS代码

<script>alert(1)</script>

成功回显

3.q参数直接带入代码变量导致的XSS

搜索框:

插入js代码失败 发现>和<被转义

继续往下找

发现被带入代码执行了

';alert(1);'

4.报错界面信息参数体现在URL导致XSS

4.标题参数存在URL导致XSS

在首页点击 图片  发现解析了标题 并且有源码  通过添加</title>来插入XSS代码

</title><script>alert(1)</script>

5.测试词被反映并包裹在一个textarea标签中导致XSS

</textarea><script>alert(1)</script>

6.未进行转义的目录接口导致xss

7.隐藏参数未过滤”

我们看见不可见的参数

通过BP抓包 使用get 我们能够得到所有参数

注意到嵌入的< >符号被直接过滤了

但是“ 没有被进行过滤

使用

" οnmοuseοver="alert('XSS')

当鼠标移动到折扣码输入框时 触发XSS

3.重定向

1.隐藏重定向接口

重定向的特点就是http://nahamstore.thm/xxx加上参数?=http://www.baidu.com

使用fuff来模糊遍历参数

r参数为302重定向响应码

猜测r为参数

http://nahamstore.thm/?r=http://google.com

重定向到谷歌

2.未登录跳转重定向

总所周知,用户未登录时,重定向功能是最常见的,当所需功能点需要登录后才能使用时,变会出现重定向

在访问basket功能时出现重定向

将其更改为http://google.com

4.CSRF  跨站请求伪造Cross-Site Request Forgery

当把CSRF_protect删除后

发现未授权访问

且为base64编码

5.IDOR 不安全的直接对象引用

任意修改address_id可以获取任意用户地址信息

PDF生成里面 id参数可以任意修改

改为3

发现进行了验证

不要慌

加上%26user_id=3  其中 %26为&的URL编码 

没错! 成功了

6.LFI 本地文件包含

本地包含文件漏洞一般出现服务器访问了本地的文件

因此图片这种保存在本地的资源容易产生该漏洞

尝试访问却没有

逐个添加../也无济于事

这时候我应该明白,路径进行了过滤

进行尝试

发现是对../进行了删除过滤

那么便好办了 使用..././过滤  系统删除../  剩下的仍为../

最终成功payload:

..././..././..././..././..././/lfi/flag.txt

应该是flag被以图片形式返回了

抓包看看

7.SSRF  服务端请求伪造 Server Side Request Forgery

我们注意到检查库存有一个服务器参数

server很可能是一个需要输入URL的参数

1. @ 符号的作用:用户信息分隔符

在URL的权威格式中(遵循RFC 3986),@ 符号用于分隔用户信息主机名

2. # 符号的作用:片段标识符

在URL中,# 及其后面的所有内容被称为“片段”,主要用于在浏览器中定位到页面的某个锚点。关键的一点是:这个片段不会被发送到服务器端

我们注意到之前服务器的internal-api.nahamstore.thm直接访问没有显示

构造出stock.nahamstore.thm@internal-api.nahamstore.thm#尝试访问

拼接上orders

成功得到 继续拼接id

找到目标信用卡号码

8.XXE (XML外部实体)

XML外部实体注入(也称为XXE)是一种Web安全漏洞,允许攻击者干扰应用程序对XML数据的处理。它通常使攻击者能够查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互。

在查看产品处拼接?xml 回显表明该接口存在

payload:

X-Token= 1000



<?xml version="1.0"?>

<!DOCTYPE root [<!ENTITY test SYSTEM 'file:///flag.txt'>]>

<root>

<X-Token>

&test;</X-Token>

</root>

在此界面 我们注意到可以上传xlsx文件

我们不能放弃hack的机会

过程有点复杂 只放结果

9.RCE 远程命令执行

发现/admin/login

尝试弱口令admin admin成功

还记得刚开始的侦察 我们已经利用反引号` 成功进行了RCE

10.SQL注入

添加单引号报错

直接使用sqlmap

在sqli_one表得到flag

在请求包中

保存请求包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值