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的数量小于字 ...
初探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 ...
hgameweek2
search4member又是一道java题,果然现在的web全是java这道题目我们需要先审计源码,一开始我看的了下面的这段代码发现了sql注入,于是我狠狠的注入了进去,结果发现表都是null,只注出来了数据库H2,于是我就在网上查了一下。发现H2数据库的漏洞还不少,最典型的就是存在sql注入时可以将sql注入升级成RCE。原因是H2数据库允许用户定义函数名,可以执行java代码,那么我们只要能够RCE的代码别名后再使用CALL调用即可进行RCE1234CREATE ALIAS EXEC AS $$ void e(String cmd) throws java.io.IOException {java.lang.Runtime rt= java.lang.Runtime.getRuntime();rt.exec(cmd);}$$CALL EXEC('whoami');即如果再对H2数据库使用以上语句就会执行whoami。但是再执行时发现如果存在{网页会崩。由于CREATE ALIAS指令可以使用字符串(String)作为源代码(也就是 ...
php命令执行
我发现我经常会忘记php命令执行的绕过的方式所以我想这在这里写这篇关于php命令执行的总结以及题目的总结命令执行的常见函数1234561.system()//有回显2.exec()//无回显,返回值为数组,需要使用print_r()输出3.passthru()//有回显,与system差不多4.shell_exec()//无回显,返回值为字符串,使用echo或print()5.popen()//返回的是一个文件类型可以使用echo fread(popen('ls','r'),1000);执行。6.``无回显需要使用echo输出
常见的读取命令1234567891011121314ls //目录读取find//目录读取dir //目录读取cat //文件读取(正向读取)tac //文件读取(反向读取)more//文件读取(东西多的时候一页一页读取)less//和more相似tail//读取文件的最后几行nl //显示时顺便输出行号od //以二进形式读取文档 可以直接使用也可以system('od -A d -c fla\g.php& ...