专栏首页人工智能机器学习CTF从入门到提升(十三)文件包含session及例题详解
原创

CTF从入门到提升(十三)文件包含session及例题详解

​​具体场景——session

我们可以查一下手册,看看这个参数是默认开启:

举栗子

通过上传一个orange作为key传一个值传给这个变量,放到file函数中,再去比对file函数读取结果文件中的第一行0前面六个字符串是否匹配,如果是orange就会作为包含,否则就会显示源代码。

这道题的难点在于包含一个文件要控制里面的内容,file函数的作用是把一个整一个文件读到一个数据中去,filename要读取文件名:

Session.upload_progress.enabled这个参数会生成一个上传进度文件,如何生成、是否可控以及它有什么用呢?

用curl来操作  :

可以尝试着在后面再去跟一个文件,再次传一个表单。

会发现这个文件是可以留下来的,这段文件内容其实你是可控的,这个地方的值可以直接包含漏洞进行利用了,但是它反而没有这么简单,因为题目在实际判断中,需要读取文件的前六位。upload progress之后的字符串是可控的,之前的却是不可控的,这个地方又是下一个突破点。

upload progress不可控就没有办法进行绕过,想办法让它可控,可以考虑运用伪协议进行突破的时候做一个消失。php://filter/convert-base64.encode去做一个文件读取的操作,base64可以让它转码,

如果在后面跟两个等于号会怎样呢?

会发现它返回的结果还是一样的,base64在解码的时候,先做一个正值匹配,把非base64字符串去掉变成空格,自动删去空格再做解码 。

四个字符串解一次就会变成三个字符串再解一次。二次解码之后,如果不在base64之列就会忽视掉这些东西自动消失,直到第三次解码最后拼接一些字符串。

运行后返回一个字符串,有了这个字符串之后就可以把它拿来用了。

会发现它的长度变小,说明成功了:

这个文件会在tmp目录下去生成一个web,成功实现getshell。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CTF从入门到提升(八)desc注入及相关例题分享

    desc是函数describe的简写,一般用来提供和表相关的列信息来查看表的结构。

    牛油果
  • CTF从入门到提升(十一)文件包含

    很多网站的admin(管理员)入口和user(用户)入口是分开的,登陆过程所调用的函数可能都是同一个函数,最后操作的表不同。如果调用的是同一个函数,网站一般分开...

    牛油果
  • CTF从入门到提升(九)文件上传以及相关例题分享

    首先来看一下最简单的客户端校验,文件上传是文件从本地到传输到远程服务器,中间经过了三个步骤,在你的客户端(自己电脑)本身做一个文件检测,或者文件传到后端服务器之...

    牛油果
  • JDBC第一篇【介绍JDBC、使用JDBC连接数据库、简单的工具类】(修订版)

    JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API

    Java3y
  • Go语言社区 APP --问答模块数据存储流程及代码

    注:这个是我们社区APP的问答社区的 数据库保存及数据读取的流程; 流程如下: 保存流程====接到客户端数据保存到数据库--...

    李海彬
  • 一句话木马

    “一句话木马”短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用,居家生活搞站越货必备神器。

    用户3376177
  • 从故障处理流程看结构化思维

    在数据库出现故障时,务必和运维、开发、产品等其他团队保持高效沟通。DBA在遇到故障时,一定不要忘了沟通的重要性,即使时间紧迫,简要的沟通往往也能带来事半功倍的效...

    用户5548425
  • 从故障处理流程看结构化思维

    近期收到朋友赠送的一本书—《深入浅出MySQL》。闲暇之余,阅读了部分章节,书中针对故障处理一节,给我印象颇深。书中提炼出的一些方法论,正是我之前在团队中推广的...

    jeanron100
  • 一份来自J.P.Morgan的Python训练题库!

    这是一份由J.P.Morgan纽约办公室所开发的Python训练课程。你可以通过这些课程知道J.P. Morgan希望其分析师和交易员知道什么。

    量化投资与机器学习微信公众号
  • 如何在CentOS 7上使用Barman备份,恢复和迁移PostgreSQL数据库

    PostgreSQL是一个开源数据库平台,因其易于维护,成本效益以及与其他开源技术的简单集成而广受网络和移动应用程序开发人员的欢迎。

    你在哪里

扫码关注云+社区

领取腾讯云代金券