初探phar反序列化
在NSS刷题的时候遇到了phar反序列化的题目我个人认为有必要学习一下这个漏洞因此写下这篇文章。前言我们都知道一般的php反序列化都需要一个参数可控的unserialize函数。这就导致反序列化的条件可以说非常的苛刻。但是在18年的blackhat大会上Sam Thomas 分享了 File Operation Induced Unserialization via the “phar://” Stream Wrapper ,该研究员指出该方法在 文件系统函数 ( file_get_contents 、 unlink 等)参数可控的情况下,配合 phar://伪协议 ,可以不依赖反序列化函数 unserialize() 直接进行反序列化的操作
原理phar是将php文件打包的一种压缩文档,其类似于java的jar包。其特点是会以序列化的形式将用户自定义meta-data进行存储。当我们使用phar://伪协议读取该文件时,meta-data就会进行反序列化。这时候就会产生反序列漏洞。
构造phar文件12345678910111213141516<?phpini_set( ...
NSSCTF刷题1(内有无字符数字RCE)
实在不知道干点什么了,正好之前抽到NSS的vip,刷刷题,学习学习。[CISCN 2019华北Day2]Web1(盲注)陈年老题了,打开就提醒我们注入,把表和列名都说了。那么我们尝试一下就会发现可以进行异或注入并且过滤了空格。我们可以使用%0a或者括号来绕过,之后就是布尔盲注了exp1234567891011121314151617181920212223242526import requestsimport timeurl = "http://node4.anna.nssctf.cn:28454/index.php"payload = {"id":""}flag = ""for i in range(1, 150): time.sleep(0.06) low = 32 high = 128 mid = (low + high) >> 1 while low < high: payload["id"] = ...
php特性
由于本人发现我对php的特性只有浅显的认知,尤其是对正则表达式的认知不够充分所以写下这篇文章弱类型比较首先就是老生常谈的弱比教了。由于对这块还是较为属性所以我就记录一些弱类型比较的函数就好注意:一般弱比较只有在不同类型进行比较是才会展现出特性。
函数in_array()in_array()在数组中查找字符,找到返回true,没找到返回false1234$array=array('aaa');echo in_array(0,$array);-------bool(ture)
array_search()这个函数在数组中搜索给定的值,并返回键名(如果找到的话)。它是非严格的,意味着在比较时不会检查数据类型。1234<?php$array = array('0', '1aaaa', 2, '3');$key = array_search(1, $array); // 这里会找到,因为 '1' 会被转换为整数 1echo $key; // 输出 1
array_keys()当与可选的 se ...
初探外网信息收集
作为一个web手一个好的信息收集能力是必须的,无论是渗透测试还是打比赛都少不了信息搜集主域名信息IPC备案备案查询是为了查询改单位注册了多少网站。
查询网站1https://beian.miit.gov.cn/#/Integrated/recordQuery
whois查询通过whois信息可以获取注册人的关键信息。如注册商、联系人、联系邮箱、联系电话,也可以对注册人、邮箱、电话反查域名,也可以通过搜索引擎进一步挖掘域名所有人的信息。深入可社工、可漏洞挖掘利用。
查询网站:国内:站长之家http://whois.chinaz.com
IP138网站https://site.ip138.com/
域名信息查询-腾讯云https://whois.cloud.tencent.com/
ICANN LOOKUPhttps://lookup.icann.org/
狗狗查询https://www.ggcx.com/main/integrated
国外:Bugscannerhttp://whois.bugscaner.com
国外BGPhttps://bgp.he.net
who.is ...
初探php原生类的利用
同样是因为在校赛遇到了有关php反序列化原生类的文章,所以我写下了这篇文章。php原生类分为多种,如下。
利用Error类和Exception类来实现xss漏洞。Error类是在php7下存在的一个内置类,是所有PHP内部错误类的基类,那这和XSS和什么关系呢?那是因为这个类中有一个内置方法,叫做__toString()的魔术方法,我们都知道当把对象当成字符串的时候它就会自动调用这个方法,而它会将Error以字符串的形式表达出来;那么假如有一个echo将它输出出来,而输出内容是我们是我们可以控制的,那我们就可以用<script>标签来执行js代码了
示例
我们可以看到其程序运行结果出现了xss漏洞。这是因为其__toString方法直接将Error中的字符串输出到了浏览器中导致的。注意经过反序列化之后的在被输出时也会输出其定义的字符串。
遍历文件目录类我们可以使用一下几种原生类对文件进行遍历123DirectoryIterator FilesystemIterator GlobIterator 上面三种原生类的功能相差不多都可以对目录进行遍历,当toString被触发时 ...
php反序列化之字符串逃逸
web的信息收集内容太多了学的我头疼,所以我想写一下这个php反序列化的字符串逃逸。字符增多的逃逸字符串逃逸的成因是waf将一些敏感字符进行了一些替换导致了字符串的字符数量的增多减少。如下面的代码12345function black_list($str){$str=preg_replace('/flag/i','hacker',$str);return $str;}可以看到上面的代码回将flag改为hacker那么这个字符数量就多了两个,那么我们思考一些,如果waf对我们传入的pop链进行字符替换那么会发生什么呢?比如我们反序列的pop链为O:1:"E":1:{s:1:"a";s:4:"flag";}那么这个再经过black_list的处理后就会变为O:1:"E":1:{s:1:"a";s:4:"hacker";}那么这是时候我们是无法进行反序列的,因为s的数量小于字 ...
初探python原型链污染
在校赛里我遇到了有关python原型链污染的题目,虽然做了出来但是我个人认为我对这个的了解还是不够的,所以我会写下这篇文章来记录我学习python原型链污染的全部过程python原型链污染的成因python其实是没有原型这一说法的,只有子类继承父类。但是其继承关系和js的原型比较相似,这也就导致了python也存在与js相似的漏洞(python原型链污染)python原型链污染的主要成因也与js相似都是因为merge这个合并函数错误的将base等当成了键值导致其父类被添加了属性,或者被修改了属性的值而导致的污染。下面是一个python的合并函数123456789101112def merge(src, dst): # Recursive merge function for k, v in src.items(): if hasattr(dst, '__getitem__'):#判断dst中是否含有魔术方法__getitem__ if dst.get(k) and type(v) == dict:#判断dst[k]是否 ...
校赛wp
基本信息队伍名:啦啦啦啦
队伍成员:
LSE(2023级)
HBQ(2023级)
ZWK(2023级)
WEBSign_in解题:LSEF12打开源码搜索100000会发现base64编码直接解码就是flag或者直接使用控制台来调用js函数
PermissionDenied解题人:LSE这题一打开就是文件上传,我们直接自己写一个html的文件上传文件123456789101112131415<html><head><meta charset="utf-8"><title>文件上传</title></head><body><form action="http://node5.anna.nssctf.cn:28191/" method="post" enctype="multipart/form-data"> <label for="file">文件名:</label> ...
hgameweek3
说起来很可耻这周的hgame我没有打,这篇博客只能算我的赛后复现,过个年把人给过的太颓废了。webvpn说实话这道题目不算太难,虽然我是看了wp先入为主说的话。首先这道题目需要使用js反序列化,在看wp的时候我都已经把之前学js原型链污染的内容忘了一大半了。初探js原型链污染题目给了源码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415 ...