天天看点

【护网杯】Web部分相关知识点easy tornadoeasy laravel

参考: 2018护网杯-web部分题解 本文讲解其中用到的相关知识点。

easy tornado

hint.txt

md5(cookie_secret + md5(filename))

要得到flag的filename已经提示,即现在只要获取tornado的cookie_secret就可以了

运用模板注入:

http://49.4.78.81:30980/error?msg=

{{handler.settings}}

记忆:handler.settings存放cookie_secret 哦~

嗯嗯,因为:即使看

源码

目前我也无法看出是handler.settings...

easy laravel

  • laravel:PHP开发框架
  • SQL注入:
萌新练习网站: https://ringzer0team.com wp: https://xz.aliyun.com/t/2298
admin' union select 1,(select password from users limit 0,1),3,4,5#
           

limit 为偏移量

其他...正在研究中

2.拿管理员token

admin' union select 1,(select token from password_resets limit 1,1),3,4,5#

token:计算机身份认证中的临时令牌

  1. 魔术方法 PHP16个魔术方法详解

PHP以两个下划线__开头的方法称为魔术方法(Magic methods)

__construct()当一个对象创建时被调用

__destruct()当一个对象销毁时被调用

__toString()当一个对象被当作一个字符串使用

__sleep() 在对象在被序列化之前运行

__wakeup将在序列化之后立即被调用

3.如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的话,就容易造成很严重的漏洞

4.如何在不使用php函数unserialize()的前提下,触发序列化呢?phar://

参考:

初探phar://

利用条件:如file_exists(),fopen(),file_get_contents(),file()等文件操作的函数。要有可用的魔术方法作为“跳板”。文件操作函数的参数可控,且:、/、phar等特殊字符没有被过滤。

实现过程:...先见链接好吗~

LTshop

条件竞争:发生在多个线程同时访问同一个共享代码、变量、文件等没有进行锁操作或者同步操作的场景中。如果并发处理不当或相关操作逻辑顺序设计的不合理时,将会导致此类问题的发生。

实现:多线程访问,数据库update一次的时间内update了多次,导致数据出现错误

多线程访问,可以自己写脚本,也可以用burp:多线程,null payloads

  • 整形溢出:具体需要看《计算机组成原理》

但是这样还不够,发现辣条之王有填写兑换数,尝试整数溢出

因为最长为longlong,即存在2^64,又因为5包大辣条换一包辣条之王,故最多可换3689348814741910323包辣条之王,溢出再加一包,即为3689348814741910324包,输入后溢出,成功获得足够数量的Flag