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

寮步镇仿做网站seo优化便宜

寮步镇仿做网站,seo优化便宜,为什么亿唐网不做网站做品牌,深圳网站关键字优化今日靶场: CTFSHOW 【2023 愚人杯】easy_ssti 好像没有什么有用的信息,经过尝试,在用F12键打开html网页源码之后得到提示 接下来直接访问app.zip下载压缩包 得到python代码 经过分析,这是一个简单的Flask应用,包含两…

今日靶场:

CTFSHOW

【2023 愚人杯】easy_ssti

好像没有什么有用的信息,经过尝试,在用F12键打开html网页源码之后得到提示

接下来直接访问app.zip下载压缩包

 得到python代码

 经过分析,这是一个简单的Flask应用,包含两个路由: 

/hello/    和  /hello/<name>

这两个路由分别处理不同的请求,并根据传入的参数渲染模板返回字符串.

/hello/路由

@app.route('/hello/')
def hello(name=None):return render_template('hello.html',name=name)

这个路由没有接收任何参数,因此 name 默认为 None;

它调用了 render_template 函数,尝试渲染一个名为 hello.html 的模板文件,并将 name 传递给模板。

/hello/<name>路由

@app.route('/hello/<name>')
def hellodear(name):if "ge" in name:return render_template_string('hello %s' % name)elif "f" not in name:return render_template_string('hello %s' % name)else:return 'Nonononon'

 这个路由接收一个动态参数 name

它根据 name 的值进行条件判断:

如果 name 中包含 ge ,则使用 render_template_string 渲染一个字符串模板;

如果 name 中不包含 f ,则同样使用 render_template_string渲染一个字符串模板;

  如果 name 中既包含 ge 又包含 f ,则返回字符串 Nonononon 。

这样一来我们就可以控制 name 参数注入恶意的模版代码,使之在服务器端执行操作。

在此之前,先了解这么几个东东,因为后面要用到:

OS对象类:OS 是Python的一个标准库模块,提供了与操作系统交互的接口。在SSTI攻击中,攻击者常常尝试访问 OS 模块来执行系统命令。

作用:执行系统命令访问文件系统获取环境变量进行进程管理

object类:object 是Python中所有类的基类,所有类都直接或间接继承自 object 。在SSTI中,它常被用作寻找危险类的起点。

或者说它是一个特殊的内置变量,它允许访问模板引擎的内部属性方法。攻击者可以利用这一点进行读取文件、执行系统命令等非预期操作,也可以通过object来绕过过滤限制。

作用:作为类继承链起点、通过 __subclasses__() 方法获取所有可用的子类寻找包含危险函数或模块的(如os、subprocess等)

popen函数:os.popen是os模块中的一个方法,用于创建到命令的管道,可以执行系统命令获取输出

作用:执行系统命令并获取输出、比 os.system() 更有用,因为它可以返回命令执行结果、

常用于读取文件目录列表等操作

接下来找一下object

解释一下这个payload:

/hello/{{''.__class__.__bases__}} 

/hello/是目录,payload的后面{{''.__class__.__bases__}} 是Python表达式.'' 是一个空字符串; .__class__是Python中的一个特殊属性,用于获取对象的类(即类型);

因此,.__class__ 的返回值是一个 str 类型。

.__bases__  也是一个Python中的一个特殊属性,用于获取类的基类元组;

所以,{{''.__class__.__bases__}} 返回的是 str 类型的基类元组。

在 Python 中,object 是所有类的基类。因此,str 类型的基类元组中包含 object,也就可以通过这个payload找到object。

再看看有没有什么类可以用

 这里主要由这篇博客引导着做,否则真没有任何思路

学习ssti-CSDN博客

里面主要提示

catch_warnings,因为catch_warning是function具有__globals__

然后再通过__globals__里的builtins__import__来getshell

os库中可以调用popen函数执行命令,再read读取到页面上。

在页面上查catch_warning的位置,再查class的位置就能大概查到是第几个类了。

接下来用 ls 查看当前目录,但app.py里面没有什么有用的,同样templates也没有什么

后面还是由大佬的wp得知 <class 'os._wrap_close'> 就是 os 对象类

同样用大佬的代码可以找出 os 在第几位:

ori_str = """就是放那堆妖魔鬼怪"""
ori_list = ori_str.split(",")
for index, item in enumerate(ori_list):if "os._wrap_close" in item:print(index)

搞进去运行

可以得到是132位(os对象类),那就用上

接下来要拿到 popen 函数就需要先获取对象的 __init__ 属性,然后使用 __globals__ 获取函数作用域下方法,里面就包含 popen 

终于出来了,接下来就可以执行想进行的操作了

获取当前文件目录:在原payload下加入  ('ls').read()  即可

发现这就是刚刚的app.py 没有东西

 获取上级目录:('cd .. && ls').read()

(表示先cd .. 回到上级目录,再ls读取)

呜呼呼,发现flag了终于,接下来读取flag文件

但是别忘了一个事儿:py代码里得知屏蔽了 f 字符

我就是忘了这个,但是想不到解决办法,查询到利用通配符 * 

('cd .. && cat *lag').read()

不得不说,SSTI是真的很难。。

http://www.dtcms.com/wzjs/425286.html

相关文章:

  • 广告网站定制厦门seo外包服务
  • 湖南网站推广建设公司有哪些网络营销推广主要做什么?
  • 公司做网站费会计科目小红书广告投放平台
  • 自己怎么个人网站百度关键词搜索
  • java可以做网站后台近期国际新闻
  • 长沙旅游攻略三天自由行攻略seo教程网站
  • 网站的ftp账号和密码是什么国内的搜索引擎有哪些
  • 有了网站 怎么做排名优化seo黑帽是什么
  • 做代理需要自己的网站吗互联网优化
  • magento建站教程app推广
  • 数字媒体技术就业方向东莞网站建设优化
  • 公司logo背景墙设计效果图百度热搜关键词排名优化
  • 学校门户网站建设工作汇报全球疫情最新数据消息
  • 青岛模板做网站苏州seo关键词优化排名
  • 网站开发代码交接文档书seo技术培训唐山
  • 网站建设费用推荐网络专业十大微商推广平台
  • 网络加速器下载阜阳seo
  • 咖啡网站建设设计规划书在线外链发布工具
  • 个人做网站能赚钱吗网站搜索引擎优化报告
  • 一站式做网站价格微博营销策略
  • linux做网站好搜索引擎网络推广方法
  • 怎么不花钱做公司网站网店运营具体做什么
  • 网站建设洽谈问题怎么制作网站二维码
  • 网站建设方案 备案semir是什么意思
  • 网站进入之前动态效果网上销售培训课程
  • 湖州建设培训入口网站时事热点新闻
  • 佛山学校网站建设泉州关键词快速排名
  • 国外怎么做网站新冠疫情最新消息今天公布
  • 宜昌哪里做网站广州seo推广
  • 网站建设的数据导入导出seo网站建设公司