zoukankan      html  css  js  c++  java
  • BUUCTF

    之前有幸遇到过java类的web题,但是没有学过java,也没有必要将java的知识点全部学会

    于是乎来刷刷java web

    Easy Java

    题目是登陆页面,查看源码,发现一个连接,跳转到帮助文档

    之后构造连接访问,发现是java语句,帮助文档不存在

    补充知识点:

    JAVA WEB目录结构

    WEB-INF:Java的web应用安全目录;

    此外如果想在页面访问WEB-INF应用里面的文件,必须要通过web.xml进行相应的映射才能访问;

    敏感目录举例:

    /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则
    /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
    /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
    /WEB-INF/src/:源码目录,按照包名结构放置各个java文件
    /WEB-INF/database.properties:数据库配置文件

    尝试直接访问/WEB-INF/web.xml,未找到文件

    burp抓包,将刚才帮助文档包含文件,修改为WEB-INF/web.xml,然后还要将请求方式修改为POST

    简单来说,java web是基于Tomcat服务器搭建的,通过servlet来开发。

    狭义来说servlet是指Java语言实现的一个接口。

    可以看到servlet标签属性中有flag的字样,但不知道怎么访问。

    补充知识点

    <servlet-class>  
    这个就是指向我们要注册的servlet 的类地址, 要带包路径
    <servlet-mapping>
    是用来配置我们注册的组件的访问路径,里面包括两个节点 一个是
    <servlet-name> 这个要与前面写的servlet那么一致 另一个是 <url-pattern> 配置这个组件的访问路径
    <servlet-name> 这个是我们要注册servlet的名字,一般跟Servlet类名有关

    举个例子
    <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.breeze.servlet.LoginServlet</servlet-class> </servlet>

    servlet包含了路径信息,我们尝试包含一下FlagController所在路径,不过这次要在前面加上classes来访问来访问class文件目录(详见上面的目录结构),且文件后缀为.class

    查看返回内容,方块是burp不支持的中文相关字符。其中发现返回有base64编码字符,拿去解码。

    就是我们要的flag

    [Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你
  • 相关阅读:
    扩展GridView控件增加选择列
    Flash图片轮换/切换左右推拉效果
    Flash图片轮换/切换普通效果1
    WebForm_PostBackOptions未定义 解决方法
    SQL Server 2008无法还原日志备份或差异备份的问题解决(转)
    一个简单的C#多线程间同步的例子.[转]
    SQL2008报错:无法还原日志备份或差异备份,因为没有文件可用于前滚(转)
    C# 字符、字符串过滤,只能输入数字、中文、英文、大写、小写(转)
    C# Monitor类锁定对象
    使用SqlServer中的float类型时发现的问题(转)
  • 原文地址:https://www.cnblogs.com/echoDetected/p/13052378.html
Copyright © 2011-2022 走看看