- 博客(68)
- 收藏
- 关注
原创 CTF--php伪协议结合Base64绕过
base64编码是一种只接受[A-Za-z0-9+/]的编码方式,也就是说base64只包含了64个可打印的字符,当需要编码的字符串中出现了这64个字符外的其他字符,在base64-decode时会被跳过,base64-decode仅仅会将可识别的字符编码后重新组成新的字符串。在ctf中,base64是比较常见的编码方式,在做题的时候发现自己对于base64的编码和解码规则不是很了解,并且恰好碰到了类似的题目,在翻阅了大佬的文章后记录一下,对于base64编码的学习和一个工具。
2024-11-20 09:42:07
1003
原创 流量日志分析
对于黑客攻击的流量分析,要清楚的知道攻击的思路,先从外网起,在外网的服务器或者其他能访问内网的机器getshell,在权限足够的情况下,利用shell对内网进行渗透或者利用shell上传一些恶意文件,所以在找到shell后,之后的黑客攻击大多就会围绕shell来进行。要是需要登录系统的话就有传参,登录一般是POST传参,筛选POST传参看看,POST过滤出来的应该还有其他的账号密码,那么就过滤LOGIN。在345流量包中,发现了之前的流量包没有的东西frpc.ini,应该就是上传的代理工具。
2024-08-11 14:44:08
932
原创 zjb理论
231.HDFS 存储数据时,关键数据根据实际业务需 要保存在具有高度可靠性的节点中,通过修改 Danodo 的存储策略,系统可以将数据强制保 存在指定的节点组中。235.HDFS的Client写入文件时,数据的第一副本写入位置是由NameNode确定,其他副本的写入位置有DataNode确定。230.MapReduce的核心理念是将一个大的运算任务分解到集群每个节点上,充分运用集群资源,缩短运行时间。213.Hadoop是当前大数据平台的事实标准,下列对Hadoop的描述中正确的是(多选)
2024-06-19 16:16:35
881
原创 关于反弹shell的学习
反弹Shell(也称为反向Shell)是一种技术,通常用于远程访问和控制目标计算机。反弹Shell的工作原理是,目标计算机主动发起连接到攻击者的计算机,从而绕过一些常见的安全措施,如防火墙和NAT(网络地址转换)。这种技术常用于合法的远程管理和测试环境中,但也可能被恶意攻击者利用进行未授权的远程控制。通俗一点讲就是当存在一台攻击机和一台被攻击机时,攻击机(也就是客户端)连接被攻击机(服务端)叫做正向连接,那么反弹shell就是反向的连接,客户端为被攻击机,服务端为攻击机,由被攻击机连接攻击机。
2024-06-14 23:43:14
882
原创 [羊城杯 2020]easyser
strip_tags绕过,死亡代码终究是一句php的标签,用strip_tags把标签去除,php://filter也支持strip_tags(file_put_contents,可以通过函数读取文件中的flag,这里通过上传一句话木马来getshell,链尾确定。跳出了百度的搜索页面,可以直接搜索读取的话,再结合前面看见的服务器和不安全的协议应该就是SSRF。这里我们可以发现是php序列化的代码,但是没有反序列化的入口 ,去看了一下wp用。然后参考了其他师傅的wp,结合我们暴露源码时最下面的。
2024-06-14 23:42:16
474
原创 6.12ctf练习
"$"表示正则匹配的位置,这里放在了末尾说明在字符串的末尾进行正则匹配,所以只要在"nctfisfun"前面加数字或者字母就行,只要末尾能匹配到要求字符串就行。同时$_REQUEST还具有一个特性,当同时通过POST和GET传参时,如果POST和GET中含有相同的变量时,只会获取POST传参的变量值。GET传参yulige,截取前32位和md5加密后的值相同,其实就是一个md5的强比较,传入数组为空即成立。那么第一层就利用POST传参进行变量覆盖,且post传参的值中不能出现字母,绕过第一层的判断。
2024-06-13 21:41:39
953
原创 CVE-2022-4230
WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下,具有管理选项功能 (admin+) 的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用户也可以访问它。
2024-06-06 20:49:07
651
原创 CVE-2022-22947
因为该漏洞是在使用Spring Colud Gateway的应用程序开启、暴露Gateway Actuator端点时,会容易造成代码注入攻击,攻击者可以制造恶意请求,在远程主机进行任意远程执行。至此我们利用这个CVE 通过添加查询路由的方式可以进行远程的命令执行,那么为什么能够利用呢,就涉及到java和函数方面,本人暂时没有学习java但是可以大致分享一下我学习到的。总结:这个漏洞是利用spEL表达式来包含命令,使得恶意的命令能被解析执行,在通过查询路由来回显信息,达到远程执行的目的。
2024-06-04 20:24:29
1897
1
原创 PHAR反序列化
在C1e4r中,echo可以触发_toString,destruct在变量摧毁时会自动触发,所以就形成完整的pop链C1e4r::_destruct->Show::_toString->Test::file_get()将生成的phar文件上传成功后,使用phar协议读取文件,在使用phar伪协议解析时,php一大部分的文件系统函数(下图中的函数)都会将meta-data进行反序列化。明显存在php反序列化 ,构造poc后,生成phar文件,将phar文件上传之后再通过post来cat flag。
2024-06-02 21:59:18
1196
1
原创 JSON Web Token
JWT(JSON Web Token)是一种用于在各方之间作为JSON对象安全地传输信息的开放标准(RFC 7519)。该信息经过数字签名,因此是可验证和可信的。JWT 可以使用HMAC算法或使用RSA的公钥/私钥对进行签名。
2024-05-31 22:52:10
809
原创 web练习
正常我们写一句话木马是用eval来执行后面的post,但是这里我们要用变量来调用函数,eval不是php函数无法被调用,所以用assert来运行php代码,这个点在涉及到php环境中调用函数来构造payload的时候要注意。用户名admin,爆破出密码为admin123(用户名和密码都是弱口令,所以优先尝试admin,当然也可以去翻数据库)蚁剑连接后,权限不够不能catflag,再找找代码中有bypass,存在后门,可以直接利用进行命令执行。get传参,限制字符串长度小于40,正则过滤字母数字,取反绕过。
2024-05-29 21:46:09
675
原创 DRKCTF复现1
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。总结:这题主要就是抓住token,因为token是我们注册是生成的令牌,并且题目也给了hint是根据用户来输出密码,说明跟token有关,对于cookie中的session,token之类的东西要敏感一点。(30分钟后,我明白了,当我上传了php后,直接访问显示的还是源码,所以来判断没有被解析。
2024-05-27 21:33:23
2281
原创 5.24学习记录
爆字段数没有回显,看了wp发现or被过滤了,那么可以用group by来爆,也可以用union select来尝试(这里是两列)告诉了flag应该在tag==1.0的commit里面,但是我直接把三个commit查看了一遍就找到了。确定链尾,反推pop链 ,主要还是区分set和call的触发条件,来调用魔术方法。爆库名(这里如果是在usename进行的注入,就把回显位放在1上)存在sql注入,应该是两个地方都存在注入点,那么进行闭合。哦,是倒序了,用脚本把sql语句进行倒序排列。git show一下就行。
2024-05-25 00:04:08
414
原创 5月23日学习记录
escapeshellarg() 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。我看nss上有人说不存在的字符绕过escapeshellarg 时,回显不对,查看源码也没有hint,如果出现这种情况的话可以抓包再传一次参(是重新传参,不是重发啊),就可以,最后查看flag也是。我尝试用大写来绕过对flag的过滤,但是绕过不了,把L和A都过滤了,所以使用通配符绕过。过滤了空格,flag和cat等命令,转义符也用不了。
2024-05-23 21:06:51
831
原创 国赛练习(1)
转为16进制的字符串在用hex2bin函数转为acill码时,需要引号包裹,但是引号被过滤了,可以使用"_"来让16进制被识别为字符串,再用substr,把下划线去掉进行进制转换。open_basedir是php.ini中的配置文件,可以限制用户访问文件的范围,例如本题,就限制了用户在php脚本中只能访问/var/www/html下的文件。最后的正则匹配过滤了大部分的命令执行,还有一些符号,三个函数可以说过滤了很多绕过方式,编码绕过的话,有特殊字符会被转义,命令执行被正则过滤或者转义。
2024-05-22 21:04:16
1140
原创 期中考核复现
需要寻找SQL,考核的时候dirsearch扫描到了login.php是个登录框,进行了爆破尝试,密码用admin,尝试在用户名出进行注入点的判断但是回显 NO SQL,一开始我以为是盲注,结果确实是盲注,只是不在这个页面已经明确是SQL的话,利用sqlmap来扫描一下,发现常规扫描没有发现,再结合登录页面,说明要在登录的后的页面进行注入,输入用户名和密码进行抓包。
2024-05-17 21:28:34
406
原创 5.16学习记录
总结:考核的时候对于工具的使用不是很熟练,在判断sql的注入点时不是很清晰,通过这题可以好好学习sqlmap,并且这题涉及到了深层次的扫描,需要熟悉命令和工具。源码中发现了 curl_exec,说明存在ssrf,存在的三个变量可控的是blog,所以通过blog的注入点,进行ssrf,读取后台发现的flag.php。已经明确是SQL的话,利用sqlmap来扫描一下,发现常规扫描没有发现,再结合登录页面,说明要在登录的后的页面进行注入,输入用户名和密码进行抓包。看了wp,这题不在数据库中,fuck!
2024-05-16 21:06:00
776
原创 5月10日学习记录
这题是关于xxe漏洞的实际应用,利用xxe漏洞的外部实体来进行ssrf探针内网的主机和[NCTF2019]Fake XML cookbook的区别就在于xxe漏洞的利用方向,一个是命令执行,一个是SSRF看题,打开环境,熟悉的登录框正常的抓包进行分析,明显的xxe漏洞开始构造,先查看xxe漏洞能不能正常利用存在xxe漏洞并且能够正常利用,我在做题时想的是直接查看flag文件报错了,说明flag这个文件不存在,也许我们在外网不能正常访问,xxe的漏洞利用就可以探针内网,尝试访问内网看看。
2024-05-10 12:02:09
840
2
原创 5月8日学习记录
审计之后,大致能知道flag大概率在flag.php中,通过file_get_contents读取,但是存在一个change方法,把$v的ACill值+$i*2, 要保证$v的值不被改变,只要反向一下change方法就行。浅浅的审计一下代码,参数为cmd,通过cmd传入命令后,进行命令执行,但是对于cmd有是否为json形式和内容有判断,对于json解码只要按照json格式写入就行,对于正则匹配的绕过存在两种方法。先解决第一个判断中对于"_"和"%5f"的过滤,因为b_u_p_t中带有"_"
2024-05-08 22:33:43
1754
原创 2024精武杯复现
根据两边的代码审计大概知道,是把输入的key值和tPbnK29ENaqgPANeD1Hud3KyiS4uf8oaSa0b6ldRDHs=进行对比,加密后相同就输出答案。随便在模拟器中输入数字,运行Frida脚本进行字符串的匹配,来让正确答案和输入的值进行匹配,来获取正确答案。用Frida脚本跟踪AES加密,随便输入,让其和可以进行匹配拿到key值。发现了对于hl的定义,存在sha.encrypt,来判断和HL的区别。查看敏感信息,发现答案,在jadx中搜索答案。发现key和en1有关,追踪en1。
2024-05-04 01:52:54
554
原创 Apache SSI远程命令执行漏洞
Apache SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。从技术层面来讲,SSI是一种在静态的shtml文件中根据需求插入内容;SSI其实是一套为web服务器提供的命令,指令的基本格式为:<!--指令名称="指令内容"-->指令名称指令作用#include将文本文件的内容直接插入到文档页面中#echo将环境变量插入到页面中。
2024-05-03 11:46:25
1220
原创 php反序列化字符串逃逸
目标是img,其中是一个需要读取的php页面的base64编码,需要绕过php的过滤,因为flag会被替换为空,那么就可以利用替换为空时的引号进行闭合来包含需要绕过的地方,相当于把原本不会被过滤的一个位置置空,将需要绕过的地方放到不会被不会被过滤的地方。我们需要访问读取的页面是后缀为php,如果直接放在img中就会存在过滤,所以要利用替换函数进行字符串逃逸,使得目标页面能够成功读取。在学习之前,要先了解序列化字符串的结构,在了解结构的基础上才能更好理解要输入多少被过滤的字符串。但是这样的赋值是报错的。
2024-04-26 23:39:28
512
1
原创 4.25日学习记录
分析代码,应该是想让我们通过class B 来进行命令执行,那么怎么触发call方法,A里面也没有不可访问的方法,但是可以注意到A中出现了一个实例化的过程,并且对三个属性都进行了调用,func和args就是B中执行的属性,所以是不是可以在A中实例化B来触发魔术方法,进行命令执行。这里涉及到使用动态函数,通过变量去调用,审查代码可以知道形式为b(a),那么a应该就是一个被执行的命令,b就是让这个字符串被当做命令执行,应该第一反应是eval,但是这里我们使用的是assert;php函数,有反转字符串的功能。
2024-04-25 22:10:12
494
1
原创 4.26日学习记录
打开题目,发现存在登录和注册的框,第一反应是可能存在注入,但是不着急,先正常的注册一个账号登录看看(查看源代码发现,进入到root,进行filename的传参就是我们的目的)admin的权限提高了,可以查看用户信息了,但是没有更多的有用信息,想到需要利用filename传参,而name在root的url下,尝试更高权限的root。既然用户名是admin,admin是我们需要登录的账户可是原密码我们不知道,所以需要修改密码,在req.js页面可以看见关于修改密码的function。为什么要注册admin呢?
2024-04-24 22:06:18
2212
4
原创 22长安杯电子取证复现(检材一,二)
启动检材二的镜像后,进入powershell,powershell用于Windows进行系统管理且powershell有终端记忆历史命令的功能,进入后按上键就可以查看历史命令PowerShell是一种功能强大的脚本语言和shell程序框架,主要用于Windows计算机方便管理员进行系统管理并有可能在未来取代Windows上的默认命令提示符。
2024-04-18 22:17:45
1352
1
原创 XXE漏洞
利用DTD来验证XML是否合法,两种方法引用DTD,一种直接写入到XML内部,一种外部实体引用。果然不行,但是看见了提示,应该是xml语言,抓包看看。确定了使用xml语言,尝试XXE漏洞。构造payload,尝试查看当前目录。打开环境是登录框,尝试登陆看看。外部引用,xxx.dtd文件。成功查看,说明存在XXE漏洞。用file命令来读取flag。
2024-04-16 13:05:42
370
原创 永恒之蓝(ms17-010)复现
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;利用辅助模块进行扫描,该模块不会直接在攻击机和靶机之间建立访问,只负责执行扫描,嗅探,指纹识别的相关功能,以辅助渗透测试。
2024-04-12 21:42:14
1179
原创 初学SSRF总结
先访问flag.php,抓包看看,发现key值,需要运用Gopher协议,传参key值来访问flag.php构造一个POST请求得到payload,在%0A(换行符)之前加上%0D 进行一次url编码打开环境,提示我们攻击一下fastcgi协议,然后看看题目附件,附件中详细介绍了Fastcgi协议先读取网站看看有没有什么东西,说明存在index.php 攻击Fastcgi协议需要用到Gopher工具,运行工具,先输入网站存在的默认文件位置执行参数用一句话木马,把一句话木马进行b
2024-04-11 20:51:30
904
原创 4月9日学习记录
查看flag,但是这里会发现直接查看flag_is_here没有回显,一个一个尝试,在run.sh里面发现线索,有些wp说根据经验知道有个四层文件夹迷宫,然后去爆破四层迷宫,这里查看run.sh也是一样的。',很明显的无参数绕过了,但是还是不考虑getallheaders,因为不清楚环境条件,所以一般不使用,还是选择利用php函数来绕过;file_get_contents() - 读取文件内容,show_source,highlight_file echo 可代替。end() - 读取数组最后一个元素。
2024-04-09 21:09:25
1021
原创 GIT泄露
注意:GitHack是在python2的环境下运行的,dirsearch是在python3环境下运行的,在使用命令使用工具时,最好是写明是python2还是python3,特别是kali中,集成了python2和python3,如果不知名python2还是python3,可能会报错。一般情况在没有提示是git时,通过扫描后台来确定是否存在git泄露,或者可以尝试访问git网页,在确定存在git泄露之后,就可以通过githack来下载git文件,再配合git命令来查看git文件中的内容。
2024-04-05 22:26:45
1203
原创 4.3学习总结
看见了flag,要读取,high和show都被过滤了,所以可以用file_get_contents(),但是flag没有在第一个数组,也没有在第二个数组(如果在第二个数组就可以用next使得内部指针指向下一个单位来读取)又去查lwp才知道flag在env(环境变量)中,这个环境变量真不容易想到,记得有一次的ctf比赛就有一题flag藏在env里面,但是那题给来语句的暗示,这里我没明白怎么猜到的env。返回数组中的单元,这里因为localeconv返回的第一个是".",所以默认的返回第一个单元就是"."
2024-04-03 23:56:54
805
原创 SSTI模板注入(jinja2)
前面学习了SSTI中的smarty类型,今天学习了Jinja2,两种类型都是flask框架的,但是在注入的语法上还是有不同SSTI:服务器端模板注入,也属于一种注入类型。与sql注入类似,也是通过凭借进行命令的执行,sql是和数据库的查询语句进行拼接。SSTI是在后端的渲染进行拼接,SSTI主要是运用在目前的网站框架下。经过查询资料,SSTI漏洞产生的原因:因为在函数渲染时,对于用户输入的变量没有进行渲染,才会导致漏洞的出现附上一张经典判断SSTI模板类型的图。
2024-03-30 23:30:29
1081
1
原创 SQL--报错注入(join无列名注入)
报错语句中出现了''1''',其中1'是输入的,那么应该是什么闭合呢,一开始我以为是双引号闭合,然后把后面的双引号注释掉,但是报错了。fuzz测试后,过滤了一些东西(or用||代替,=用like代替,as,column),需要爆库名,用到database,但是as被过滤了,这里有又是没见过的,通过查询不存在的库名,报错回显出库名。join是把两张表的列名相加,就导致有可能会产生相同的表名,但是jion不允许合并的两个表中有相同的列名,因此通过报错得到列名。看题,典型的SQL注入。
2024-03-29 23:31:28
591
原创 2024.3.26学习总结
看看题目,常规的GET传参和php伪协议,值得一说的是file_get_contents是读取文件的函数,所以传入文件的类型才能读取,所以需要用到data://来写入,在用php://filter读取next.php中的信息。当preg_replace匹配到符号正则的字符串时,就会把替换的字符串当做代码执行,但是替换字符串的位置却固定为字符串,这个字符串的含义为\1,所以这里代表访问临时缓冲区中的第一个子匹配项,也就是第一个位置。看题,参数长度小于等于80,并且过滤了字母数字,属于无字母了,取反绕过。
2024-03-27 15:31:03
799
原创 开学考核复现
解码,先base16再base32。拿到密码,解压压缩包,生成图片。随波逐流,然后base64解码。先进行xxencode解码。修改后缀为zip,解压。
2024-03-23 22:44:58
276
原创 关于php foreach函数和变量覆盖
foreach函数是PHP中用于遍历数组或对象的函数(且仅用于数组的遍历)。它允许循环遍历数组中的每个元素,并对每个元素执行相同的操作。在这个语法中,$array是要遍历的数组,$value是当前循环的元素的值,在循环中,当前单元的值赋给$value,数组内部指针指向下一个单元另一种语法在这种情况下,$key是当前循环的元素的键,$value是当前循环的元素的值。通过这种方式,可以方便地访问数组中的键和值,进行一个键值的匹配。
2024-03-23 21:08:05
502
原创 初学php反序列化
php中,序列化和反序列化是相对的两个过程,序列化是把变量或对象转化成字符串的过程反序列化是把字符串转换为变量过着对象的过程在php的反序列化中,存在类,当类被以特定的方式就会触发魔术方法,在实行序列化的过程中,合理的调用魔术方法,是能成功的关键;尤其在pop链的构造中,需要在多个类中调用不同的魔术方法,来构成完整正确的链。对于pop链的构造,优先找到链尾,明确了在链尾需要调用到什么魔术方法来实现,再往上反推记录一下目前为止,我遇到过的魔术方法。
2024-03-22 22:25:16
1189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人