攻防世界 ics-06

涉及知识点:

(1)php://filter协议

(2)php中preg_replace()函数的漏洞

解析:

进入题目的界面,一通乱点点出了唯一一个可以进入的界面。

观察url

http://111.198.29.45:41597/index.php?page=index

觉得page变量有问题,既然他可以为index(即文件名,那可不可以显示文件源码呢?)

于是构造payload

http://111.198.29.45:41597/index.php?page=php://filter/read=convert.base64-encode/resource=index.php

果然爆出了源码。放到解密网站中go一下。解出源码。

代码审计,发现了关键点。

这里就要提到preg_replace()函数的漏洞了,在$pattern中包含/e时,$replacement会被当做php代码来使用。(正则匹配几次就会执行几次$replacement中的代码)

学习资料:http://www.xinyueseo.com/websecurity/158.html

那还有啥说的,burpsuite走起来。

扫出了目录,那就是一个个找了。最后发现s3chahahaDir有东西。

查看文件发现真的有flag。提交。完成!

另外:有两遍flag就是 因为  test test匹配了两次/test/ 所以以上的代码执行了两次(最好写两次,万一两次返回结果不一样呢,虽然不太可能,但试试总没错QWQ)

攻防世界 ics-07   (没有做出来,但好像是题目的问题,毕竟本地复现成功了,但是照着wp撸也没拿到flag。看个思路和知识点就好了。)

涉及知识点:

(1)代码审计(php的弱类型特点)

(2)linux下的文件生成特点

解析:

if (isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9')

第一步的payload: ?id=1@9&submit&page=flag.php 没什么好说的。利用php的弱类型比较可以轻松的读取出admin用户(即id=1的用户)并满足以上条件。

使自己的session成为admin后,第二个点

<?php
if ($_SESSION['admin']) {
$con = $_POST['con'];
$file = $_POST['file'];
$filename = "backup/".$file; //假目录 if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)){
die("Bad file extension");
}else{
chdir('uploaded'); //更改目录
$f = fopen($filename, 'w');
fwrite($f, $con);
fclose($f);
}
}
?>

其他的点就不多说了,毕竟都标注了,重点linux下的文件

可以用../shell.php/.来绕过过滤。(原理的话大概是因为linux文件生成时会自动隐藏生成../和./)

攻防世界 web进阶区 ics-06的更多相关文章

  1. 攻防世界 web 进阶区 刷题记录

    1.Training-WWW-Robots 题目提示了robots协议,直接访问robots.txt 继续访问fl0g.php 2.baby_web 题目描述:想想初始页面是哪个 百度搜了下,inde ...

  2. 攻防世界web进阶区(2)--记一次sql注入

    题目地址:http://111.198.29.45:56094 这是一道sql注入题. 试试1' order by 3#,发现页面显示正常,将3换为4时,页面报错,则说明含有3个字段. 接下来判断输出 ...

  3. 攻防世界web进阶区(1)

    1.题目地址:http://111.198.29.45:43589 页面提示打开robots文件,则: 页面有提示输入fl0g.php,那么 获取flag. 2.题目地址:http://111.198 ...

  4. 攻防世界 web进阶区 lottery

    首先进入题目的页面. 按其要求登录.然后看到以下界面. 御剑扫描目录,发现了robots.txt (robots协议) ,进入查看 进入.git/目录,用神器 GitHack 下载文件. 然后查看源码 ...

  5. 攻防世界 web进阶练习 NewsCenter

    攻防世界 web进阶练习 NewsCenter   题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...

  6. 攻防世界web新手区

    攻防世界web新手区 第一题view_source 第二题get_post 第三题robots 第四题Backup 第五题cookie 第六题disabled_button 第七题simple_js ...

  7. XCTF攻防世界web进阶练习—mfw

    XCTF攻防世界web进阶练习-mfw题目为mfw,没有任何提示.直接打开题目,是一个网站 大概浏览一下其中的内容,看到其中url变化其实只是get的参数的变化查看它的源码,看到有一个?page=fl ...

  8. 攻防世界web进阶题—unfinish

    攻防世界web进阶题-unfinish 1.看一下题目提示SQL 2.打开题目看一下源码,没有问题 3.查一下网站的组成:php+Apache/2.4.7+Ubuntu 4.扫一下目录,扫到一个注册页 ...

  9. 攻防世界web进阶题—bug

    攻防世界web进阶题-bug 1.打开题目看一下源码,没有问题 2.扫一下目录,没有问题 3.查一下网站的组成:php+Apache+Ubuntu 只有登录界面 这里可以可以想到:爆破.万能密码.进行 ...

随机推荐

  1. gitlab - 解决添加webhook提示Url is blocked: Requests to the local network are not allowed的问题

    问题背景 给项目添加 webhook 保存之后报错了 解决方案 进入 admin  area 进入 settings-network 保存设置后,重新进入项目并设置 webhook 保存即可成功

  2. C语言I博课作业04

    这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11489 我在这个作业课程 ...

  3. python菜鸟教程学习1:背景性学习

    https://www.runoob.com/python3/python3-intro.html 优点 简单 -- Python 是一种代表简单主义思想的语言.阅读一个良好的 Python 程序就感 ...

  4. VBA_50段代码总结

    ''                                                          30个有用的VBA代码 '目录: '1--合理使用数组:'2--一次保存并关闭所 ...

  5. AI云原生浅谈:好未来AI中台实践

    AI时代的到来,给企业的底层IT资源的丰富与敏捷提出了更大的挑战,利用阿里云稳定.弹性的GPU云服务器,领先的GPU容器化共享和隔离技术,以及K8S集群管理平台,好未来通过云原生架构实现了对资源的灵活 ...

  6. tcp 客户端 synack的接收 以及 相互connect

    接收入口 tcp_v4_rcv    |--> tcp_v4_do_rcv               |-> tcp_rcv_state_process                  ...

  7. Linux程序开发中如何判断目录是否为根目录?

    问题引入 判断某个目录字符串是否是根目录,咋一听很简单,只要判断字符串是否是"/"即可,但是,很多情况下使用的路径是相对路径,那么如何判断相对路径是根目录呢? 思路分析 熟悉Lin ...

  8. MFC常用函数

    1.MFC的常用函数(只是找了些经常使用的,这里没有的可以CSDN查找,不需要都记住,经常使用自动就会记得) 1)GetDlgItemText(ID ,str)作用: 对话框中获取文本第一个参数为要获 ...

  9. python-网络安全编程第九天(json模块、zoomeye采集)

    前言 其实这篇应该是昨天必须完成的但是昨天emmmmm 学习进度有点慢 今天早上起来早点完成了这些的学习 昨天计划学习内容还差一道CTFemmm 不管了 先写一下今天的计划 开始锻炼身体去. pyth ...

  10. kali 系列学习07-攻击之密码生成

    比较理想的字典是拖库字典,比如CSDN字典,如果要生成字典,可以使用Crunch 和 rtgen 两个工具, 一.密码生成 1.Crunch (1)启动crunch命令.执行命令如下所示. #crun ...