掌控安全腾龙杯2024(WEB方向)
文笔有限,大佬轻喷。1. 签到:这是一个登录页面
https://img-blog.csdnimg.cn/direct/c985f1a5b21d46d483c1306f0c1891e9.png
按照页面提示,拼接访问:/login。
https://img-blog.csdnimg.cn/direct/1d3fd64e6b50417f95496450f42f6b68.png构造哀求包,以json格式传输,返回一串JWT密文。
https://img-blog.csdnimg.cn/direct/8bc8b05760524a7ab5a96d09fd968789.pngJWT密文解码如下:
https://img-blog.csdnimg.cn/direct/e80a7ab6a6b948618876091e02a4b42d.png
拿到JWT密文之后思路忽然就断了。实行查看页面源码、访问robots文件等寻找hint,在robots文件中得知还存在/fulage
https://img-blog.csdnimg.cn/direct/a9389dd2236541a2846060e87cccda5d.png拼接访问:/fulage
https://img-blog.csdnimg.cn/direct/03898a171f3b4b13ba83f43124f5c3e5.png
实行构造哀求包,发现需要token。
https://img-blog.csdnimg.cn/direct/2912f43b7792450d8f269afb52f6041e.png将/login处得到的token构造后直接发送,提示我们不是admin。
https://img-blog.csdnimg.cn/direct/18b087358dcc48a0b2e1ec8165cb6fa8.png实行修改JWT对应的payload部分,即伪造用户。
https://img-blog.csdnimg.cn/direct/b8accf85f39e4d81b67a5f0a18fafa58.png
再次发送JWT,拿到flag。
https://img-blog.csdnimg.cn/direct/edd24754dd5d46739cca01e1644a0f67.png
2. web2
https://img-blog.csdnimg.cn/direct/bc7cd015deef4aacb65eaa140b49c29b.png
构造哀求包,提示访问/admin
https://img-blog.csdnimg.cn/direct/53f43bd391c143f0b2c1db897fd85374.png
访问/admin,返回FORBIDDEN
https://img-blog.csdnimg.cn/direct/76b187ffde724869ba74ac80e0d12cd7.png
相应包中含有:Server: gunicorn/20.0.4,存在哀求走私毛病。参考链接:gunicorn哀求走私毛病
n version 20.0.4 of gunicorn there is a request smuggling vulnerability which works regardless of which proxy is used in front of gunicorn. It is caused by special parsing of the Sec-Websocket-Key1 header.
在 gunicorn 的 20.0.4 版本中,存在一个哀求走私毛病,无论在 gunicorn 前面使用哪个署理,该毛病都会起作用。这是由 Sec-Websocket-Key1 标头的特别解析引起的。
实行构造哀求包。
https://img-blog.csdnimg.cn/direct/61195363c1184ae4a855b471fad489e6.png
伪造UA。
https://img-blog.csdnimg.cn/direct/45c710004a384b08baa67002b8e94b04.png
第二段哀求中拼接访问:/fl4g
https://img-blog.csdnimg.cn/direct/f8acb6e7481f4920b7ae2eb99824a0de.png
伪造XFF,拿到flag。
https://img-blog.csdnimg.cn/direct/a0c04de3b0d84240be751447bb7da556.png
3. 这又是一个登录页面
https://img-blog.csdnimg.cn/direct/7b81c8fb50844610b197e9799477a51c.png任意输入账号密码,相应包中返回一串JWT,并重定向到/fl4g
https://img-blog.csdnimg.cn/direct/65ebcc1698204efe8d5cb7c78349428a.png
对JWT举行解码,可以查看到相应的信息。
https://img-blog.csdnimg.cn/direct/234e26cca3b1420e8bf5ae1cad211a9e.png
发送相应的哀求信息,权限不足。
https://img-blog.csdnimg.cn/direct/b836121ed80c42b699691c07f6bf5350.png
实行寻找secert,无果。在robots文件找找到公钥信息。
https://img-blog.csdnimg.cn/direct/e1304192e56a446fa37f543336b9a242.png
JWT最常用的两种算法是HMAC和RSA。HMAC(对称加密算法)用同一个密钥对token举行签名和认证。而RSA(非对称加密算法)需要两个密钥,先用私钥加密生成JWT,然后使用其对应的公钥来解密验证。
如果将算法RS256修改为HS256,后端代码会使用公钥作为秘密密钥,然后使用HS256算法验证签名。由于公钥偶尔可以被攻击者获取到,所以攻击者可以修改header中算法为HS256,然后使用RSA公钥对数据举行签名。如果将alg参数改成HS256,如许就将算法RS256修改为HS256,让服务器不使用对称加密,转而使用非对称加密算法。
所以下一步思路是修改算法,使用公钥对数据举行加密,参考:JWT攻击,编写脚本如下:
import jwt
public = open('public.pem', 'r').read()
print(jwt.encode({"account": "@dministr@t0r"}, key=public, algorithm='HS256'))
注意导入PyJWT模块,直接运行会报错。
https://img-blog.csdnimg.cn/direct/023d6fe70cb746b2adc4ae854a351246.png
直接定位到相应模块,注释掉关键代码即可。
https://img-blog.csdnimg.cn/direct/b0ce877a10ec4a1faaa49b6f7551c0a9.png
运行代码,拿到伪造的JWT密文。
https://img-blog.csdnimg.cn/direct/b90ab2b05edf4915b0568511cea280d4.png
构造哀求包并发送,拿到flag。
https://img-blog.csdnimg.cn/direct/84fd4db6d3ed44ceb0d3c8412ebac5d5.png
4. html训练生
https://img-blog.csdnimg.cn/direct/b831e34da0774d088297715ed9d7e11d.png
存在登录框,习惯性测试SQL注入、弱口令,均无果,来到注册处,注意UserID必须为数字。
https://img-blog.csdnimg.cn/direct/f626c9f0b3fa4e0c94be1819544c2319.png
注册完账号后直接登录。
https://img-blog.csdnimg.cn/direct/79005c1b409e4fb4bbd1eb713a0d1d42.png
[*]“修改个人信息”页面
https://img-blog.csdnimg.cn/direct/460b17c6e017480ebd9709634c2a035a.png
[*]“登录日记查看”页面
https://img-blog.csdnimg.cn/direct/8a760790ccb245d4a2d74e6c5469c40e.png
“登录日记查看”处可以登录UserID、登录IP地点以及登录时间,可以实行二次注入。在没有源码的情况下,实现二次注入相对较难。但可以实行分析后端功能:在登录体系后,会记录登录IP、UserID,那么大概率存在一个查询这些信息并将其插入到相应表中的动作。
UserID可控,但是只能为数字,猜测后端使用了is_numerice()函数,该函数识别16进制。那么就将插入、查询信息的流程连贯起来了。
mysql> insert into admin (id,name,pass) values ('3',0x61646D696E27313131,'11');
Query OK, 1 row affected (0.00 sec)
mysql> select * from admin;
+----+-----------+-------+
| id | name | pass|
+----+-----------+-------+
|1 | admin | admin |
|2 | admin'111 | 11111 |
|3 | admin'111 | 11 |
+----+-----------+-------+
4 rows in set (0.00 sec)
[*]获取表名
','a',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'c')#
将其转换为十六进制,注意加上0x前缀符号。
https://img-blog.csdnimg.cn/direct/389c78a5cfa34374890c1509b289e922.pnghttps://img-blog.csdnimg.cn/direct/22b48fbb82354823ad67bedc40965ba4.png
[*]获取列名
','a',(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='injectflag'),'c')#
https://img-blog.csdnimg.cn/direct/774afb7363384c6db5305c2022cf0be7.png
[*]获取数据
','a',(select group_concat(fl4g) from injectflag),'c')#
https://img-blog.csdnimg.cn/direct/1de5e7b59ad34a47bc7c25f69731f3a3.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]