XY学到的知识
感觉自己越来越懒了这个文件创建了很久,但是一直没有做好总结1.rce后拼接字符时绕过的方法在xy时我碰到了新的绕过方法,之前我有了解到可以使用#和短标签<?=?>来进行绕过,但这次比赛并不可以。于是我就在网上找到了这个新方法。
使用phar文件尾来截断代码,实现绕过。如标题当php文件在执行代码时遇到phar文件尾时效果与?>相似不会解析后面的代码也就不会出现后面的报错。我们可以发现即使在文件尾后面出现严重的语法错误也不会报错程序会正常运行那么在遇到如下代码时我们就可以尝试使用这个方法绕过12345$cmd=$_POST[cmd];if(preg_match("/#|<|>/",$cmd);){ die("nonono");}eval($cmd."lalalala");当遇到如上的题目即可使用该方法绕过1cmd=phpinfo();__HALT_COMPILER();
2.在文件包含时使用php://filter伪协议的过滤器来任意构造字符串。hxp CTF 2021 - ...
FCTF的wp
这个清明闲着没事和队友偷偷跑去打福州大学的线上校赛。整体下来打的还是很开心的。福大的师傅人很好,发现我们是校外的也就只是让我们换个号打,不要交flag,整体下来题目对web手来说还是比较友好的,对PWN手可能就不太友好了。还是能学到不少的下面是wpping一下~签到题没什么好说的直接管道符加命令执行就可以了。
被你们玩坏了的ping和上一题相比只是没有回显而已,一开始我准备弹shell后面发现弹不了就直接DNS外带了。
吃掉小土豆福大的题目都是有给源码的,如果题目没有给哪个代审的工具网站那么难度是有的,但是给了,用工具可以一眼看出是sql注入,注入点是$_session[name]而session是在rank.php下直接GET传值的。在简单的手测后发现位报错注入
can_u_find_me?我们查看一下源码会发现404窗口的报错页面位模板注入。我们看一下waf12345def waf(s): for i in blacklist: if i in s.split('/')[-1]: return s + '?ha ...
NSS刷题2。
哈哈哈哈水水博客写一写刷题学到的一些知识点[HDCTF 2023]YamiYami这道题目的前提知识点有点一点小多,也学到了不少知识
urlopen函数该函数的作用是打开一个url并进行重定向如下。我们可以看到网页并没有跳转但是成功查看到了百度的网页。而这个函数结合file伪协议是可以对系统的文件进行读取。如下我们可以看到其成功访问并且urlopen是可以解析url的地址的即file://后的地址可以转为url编码的形式。第一个/表示根目录不能url编码其他都可以。即我们可以将我们输入的文件地址转为url编码如/etc/passwd可以转为/%65%74%63%2f%70%61%73%73%77%64那么我们就可以采取这种方法对waf进行绕过。
PyYaml反序列化
NKCTF的复现学习
这次NKCTF我可以算是打的非常差了。下面是我的一下反思和复现学习我的第一个CMS这题没什么好说的了。CVE什么都找到了,扫了两个字典弱密码没扫出来。悲啊。密码本已经换了气死了。字典里只有admin123没有Admin123。我看了一下网上的字典很多都没有Admin123。CVE-2024-27622直接admin登陆,之后按照cve进行代码执行就可以了
attack_tacooooo这题我们打开会发现为pgadmin4的8.3版本我们在网上可以查到其存在上传文件进行反序列化执行的漏洞。CVE-2024-2044 漏洞我们要先登陆后台。账号提示为tacooooo@qq.com密码我在打比赛的时候猜了出来为tacooooo。之后我们在进行文件上传上传文件的时候我们可以进行抓包发包后查看响应来查看文件上传的目录位置因为触发这个反序列化需要将session的的一部分改成文件路径如下/var/lib/pgadmin/storage/tacooooo_qq.com/posix.pickle之后再触发反序列化1234567891011121314import pickleimport osimpo ...
初探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信息可以获取注册人的关键信息。如注册商、联系人、联系邮箱、联系电话,也可以对注册人、邮箱、电话反查域名,也可以通过搜索引擎进一步挖掘域名所有人的信息。深入可社工、可漏洞挖掘利用。
查询网站:12345678910111213141516171819202122232425国内:站长之家http://whois.chinaz.comIP138网站https://site.ip138.com/域名信息查询-腾讯云https://whois.cloud.tencent.com/ICANN LOOKUPhttps://lookup.icann.org/狗狗查询https://www.ggcx.com/main/integrated国外:Bugscannerhttp://whois.bugscaner.com国 ...
初探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的数量小于字 ...