![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ctf
文章平均质量分 88
时代少年团队长乌萨奇的颜值一直被质疑
人一能之己百之,人十能之己千之
展开
-
[BJDCTF2020]ZJCTF,不过如此
代码要求我们有两个get参数,首先,代码会检查是否设置了text参数,并且通过函数读取指定文件的内容。如果读取到的文件内容等于"I have a dream",则会将这个内容显示在页面上。接下来,代码检查是否设置了file参数,并且使用include()函数包含这个文件。然而,在包含文件之前,代码进行了一些安全性检查。它使用函数判断$file中是否包含"flag"字符串,如果包含则输出错误信息并终止脚本执行。如果以上条件都满足,那么就会包含指定的文件($file根据提示的next.php,我们去访问它。原创 2024-01-11 16:55:01 · 1158 阅读 · 0 评论 -
BUUCTF刷题记录
首先,它从GET请求中获取名为"host"的参数,并将其赋值给变量$host。接下来,代码使用函数对$host进行转义,以防止命令注入攻击。这个函数会在字符串的开头和结尾添加单引号,会将其中的单引号字符'加一个转义符,再加上一对单引号进行链接单,转义为'\''。然后,代码使用函数对host进行更严格的过滤。这个函数会删除字符串中的一些特殊字符,包括`\0`、`\n`、`\r`、`\t`、`\`、`;`、`|`、`&`和``,防止恶意用户利用这些特殊字符执行任意的Shell命令。原创 2024-01-11 14:38:57 · 1067 阅读 · 0 评论 -
[De1ctf 2019]SSRF Me(哈希拓展攻击)
在secret_key + param + action里,已知secert_key = os.urandom(16)(长度16),已知明文flag.txt(param)和scan(action),我们需要添加read。把flag.txt算进秘钥长度里,则秘钥长度为16+8,已知明文为scan,已知hash为8370a8f86a7a74b4053d1bc554a9d126,拓展明文为read,启动刚刚的脚本依次填入得到新明文和新hash,原创 2024-01-08 18:58:39 · 1733 阅读 · 0 评论 -
[ASIS 2019]Unicorn shop
由于 Unicode 是一种字符集,它可以表示世界上几乎所有的书写系统中的字符,因此 Unicode 编码中的 50000 可以被解释为一个字符,并且该字符并不受到 ASCII 编码字符的限制。传入UTF-8编码,在后端处理的过程中,发现该UTF-8编码无法解析为ASCII码,然后会将其解析为Unicode编码,而Unicode中的这个字符表示的值为罗马数字5000,且为一个字符,于是就绕过了一个字符的限制,数字大小也大于1337,于是成功购买,得到flag。通过这个网站寻找大于1337的字符。原创 2024-01-03 22:29:06 · 413 阅读 · 0 评论 -
2023楚慧杯 WEB方向 部分:(
查看源码能看见账号:username169,密码:password196提交这个用户密码可以跳转到页面/dhwiaoubfeuobgeobg.php通过dirsearch目录爆破可以得到www.zip这里可以命令执行,使a=nl,b=/f*绕过正则得到O:4:"Flag":2:{s:1:"a";s:2:"nl";s:1:"b";s:3:"/f*";s:1:"b";s:3:"/f*";原创 2023-12-18 22:38:30 · 562 阅读 · 0 评论 -
常用网安渗透工具及命令(扫目录、解密爆破、漏洞信息搜索)
感觉扫目录dirmap>dirsearch>御剑,我工具都是按在kali上的,命令也是在kali上使用。原创 2023-12-17 22:32:16 · 410 阅读 · 0 评论 -
bugkuctf web随记wp
上传一句话木马,抓包,改Content-Type:为image/jpeg,把filename="1.php"改成filename="1.php4"(php2,php3,php4,php5,php6,php7,phps,phpt,phtml,phtm,Php,php:.jpg)两种绕过方式:1.利用该函数的空截断漏洞,开头就是\x00,后面不管是什么都会匹配成功,后端得到的是\x00,这中间还有个解码过程,因此要对\x00进行url编码为%00,如果用这种方法b要在最后,不然过早把\x00放入会把a也截断。原创 2023-12-14 23:26:25 · 379 阅读 · 1 评论 -
命令执行RCE及其绕过详细总结(各情景下的绕过)
scandir() :将返回当前目录中的所有文件和目录的列表。返回的结果是一个数组,其中包含当前目录下的所有文件和目录名称(glob()可替换)localeconv() :返回一包含本地数字及货币格式信息的数组。(但是这里数组第一项就是‘.’,这个.的用处很大)current() :返回数组中的单元,默认取第一个值。pos()和current()是同一个东西getcwd() :取得当前工作目录dirname():函数返回路径中的目录部分。原创 2023-12-12 00:03:57 · 5142 阅读 · 2 评论 -
命令执行的一些绕过
1、大括号{}:2、$IFS代替空格:$IFS$9,${IFS},$IFS这三个都行Linux下有一个特殊的环境变量叫做IFS,叫做内部字段分隔符 (internal field separator)。?单纯$IFS2,IFS2被bash解释器当做变量名,输不出来结果,加一个{}就固定了变量名?$IFS$9后面加个$与{}类似,起截断作用,$9是当前系统shell进程第九个参数持有者始终为空字符串。?3、重定向字符原创 2023-12-02 23:36:30 · 235 阅读 · 0 评论 -
ISCTF2023 web方向wp超详细解析+做题思路(部分)
题目:提示了一句话密码为1,直接蚁剑连靶场,密码连1进去就能看见flag1根目录有flag2flag3不可能一个个点,肯定是转去虚拟终端用命令找,在开虚拟终端之前看下.sh,一般都会放些提示我们就能知道,FLAG3 包含了 FLAG 变量的从第 21 个字符到末尾的部分,可以直接在虚拟终端输出 FLAG3 变量的值那我们先进入虚拟终端,然后cd /去到根目录,然后在根目录输出FLAG3 变量的值别的命令不知道为什么不是返回不了,就是权限不够,都已经root了(?原创 2023-11-29 16:14:28 · 3895 阅读 · 0 评论 -
PHP反序列化刷题合集
第一步:确定切入点在于($this->func)($this->var);,给func传system,给var传ls /,如果执行的话就是system(‘ls /’)查根目录,那我们怎么执行呢?需要我们触发evil方法第二步:我们注意到pwn类中的$this->obj->evil();可以触发evil()方法,那我们就可以把实例化的web类传给pen类的obj属性,想要真正触发evil()还需要触发__invoke()魔术方法。__invoke会在一个对象被当做函数调用时触发。原创 2023-11-20 23:58:58 · 316 阅读 · 0 评论 -
山东省“技能兴鲁”职业技能大赛 学生组 WEB方向全wp
打开就能看见源码抓包能看见回显里有Server: nginx/1.22.1在 Linux 系统上,Nginx 的默认访问日志和错误日志路径可以在 Nginx 的配置文件中进行设置。一般来说,默认情况下,Nginx 的访问日志和错误日志的位置如下:访问日志:默认情况下,Nginx 的访问日志路径是。这个路径可以在 Nginx 的配置文件中通过access_log指令进行设置。错误日志:默认情况下,Nginx 的错误日志路径是。这个路径可以在 Nginx 的配置文件中通过error_log指令进行设置。原创 2023-11-14 16:54:18 · 294 阅读 · 0 评论 -
强网杯 2019 Upload(代码审计、反序列化、thinkphp5,附代码审计详解)
首先看到登录和注册页面,爆破了一下admin登录界面无事发生,注册后登录看见一个上传头像的上传点(不知道是不是容器原因,上传完第一次后上传不了第二次一直显示连接不上),扫了下目录扫出一些文件,其中有用的是www.tar.gz打开压缩包能看见是th5,查看查看看到其定义的路由都指向了这个模块,该模块下共有四个控制器(四个文件的审计在最后)关键的点在于:Index.php中的login_check()中,有一处使用了反序列化,并且没有进行任何过滤寻找别的魔术方法Register.php中:Profile.php原创 2023-11-12 23:00:01 · 196 阅读 · 0 评论 -
变量覆盖总结合集(四大类)
$使用不当,extract()函数使用不当,parse_str()函数使用不当,import_request_variables()使用不当,开启了全局变量注册等(全局变量:register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。原创 2023-10-15 00:12:25 · 270 阅读 · 0 评论 -
Phar反序列化详细总结
phar协议,phar.phar包,和保存在phar包中的文件test.txt。被压缩的文件内容,在没有特殊要求的情况下,这个被压缩的文件内容可以随便写的,因为我们利用这个漏洞主要是为了触发它的反序列化。有file_exists(),fopen(),file_get_contents(),file()等文件操作的函数。Phar文件中被压缩的文件的一些信息,其中Meta-data部分的信息会以序列化的形式储存(当文件操作函数通过。,放在文件末尾,如果我们修改了文件的内容,之前的签名就会无效,就需要。原创 2023-11-09 20:00:10 · 189 阅读 · 2 评论 -
SSTI模板注入详细总结及WAF绕过
模板引擎是用于Web开发的工具,其作用是将用户界面和业务数据分离。通过模板引擎,我们可以根据特定的格式要求生成文档。使用模板引擎,我们只需要提供用户数据,然后将数据传递给渲染函数,模板引擎会根据提供的数据生成对应的前端HTML页面,最终呈现在用户的浏览器中。原创 2023-11-15 23:46:36 · 1974 阅读 · 0 评论 -
最全SSTI模板注入waf绕过总结(6700+字数!)
详细介绍了各种方法绕过混合过滤,关键字过滤,各种符号过滤,点过滤,下划线过滤,单双引号过滤,很齐全原创 2023-11-09 01:12:19 · 2211 阅读 · 2 评论 -
SSTI注入中判断服务器模板的方法(含例题)
然后回到最初注入${7*7}成功回显出49的情况,这种时候是执行成功走绿线,再次注入a{*comment*}b,如果执行成功回显。如果没有回显出ab,就是执行失败走红线,注入${"z".join("ab")},如果执行成功回显出。如果注入{{7*7}}回显了49代表执行成功,继续往下走注入{{7*'7}'},如果执行成功回显。我们可以看到有红色剪头和绿色箭头,绿色是执行成功,红色是执行失败。首先是注入${7*7}没有回显出49的情况,这种时候就是。,再次注入{{7*7}}如果还是没有回显49就代表这里。原创 2023-11-06 20:18:02 · 146 阅读 · 1 评论 -
2023NewStarCTF [WEB] week4 逃 字符串逃逸
第一种:还是同样的思路把最后的cmd排挤出去,用我们自己构建的cmd属性,但是这里问题就来了,我当时鼠标点错修改的是最后一个cmd,但是居然也出了flag,理论上这里已经被截断了呀。而且我定睛一看发现我刚刚的ls /也是这么来的,理论上key的长度不对应该什么都出不了。我们的思路就是把多出来的字符构造成功能性代码(即自己构造一个cmd属性),原本的功能性代码就不管了(不管给原本的cmd赋值什么都不重要了,因为我们已经自己动手构造cmd属性了,而原本的cmd会被废弃)的时候就会默认结束,意味着什么呢?原创 2023-10-29 18:52:05 · 247 阅读 · 0 评论 -
BuuCTF nextGen 1 WEB
方法设置请求头的"Content-Type"为"application/x-www-form-urlencoded",表示请求体的格式为URL编码形式。提示中给了flag.txt,但是直接访问显示Page not found,有可能是因为权限限制我们不能直接访问。简而言之,我们可尝试构造POST请求,通过file://来获取本地文件信息。请求体中包含了一个名为"service"的参数,其值为。指定了请求的URL为"/request"。方法设置请求的类型为POST,并。的函数,它接受一个事件对象。原创 2023-10-28 18:17:41 · 431 阅读 · 1 评论 -
无参数RCE绕过的详细总结(六种方法)
scandir() :将返回当前目录中的所有文件和目录的列表。返回的结果是一个数组,其中包含当前目录下的所有文件和目录名称(glob()可替换)localeconv() :返回一包含本地数字及货币格式信息的数组。(但是这里数组第一项就是‘.’,这个.的用处很大)current() :返回数组中的单元,默认取第一个值。pos()和current()是同一个东西getcwd() :取得当前工作目录dirname():函数返回路径中的目录部分。原创 2023-10-26 23:52:39 · 3108 阅读 · 6 评论 -
BuuCTF [GXYCTF2019]禁止套娃详解(两种方法)
点入题目没有提示,常规抓包看源码扫目录,用dirsearch扫目录的时候扫出git第一眼看见第二个if语句,if(';R)?\)/', NULL, $_GET['exp']))可以看出这是典型的无参数rce,然后是后面的if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp']),这里限制了phpinfo(),getcwd()这些函数用不了。原创 2023-10-28 15:57:23 · 518 阅读 · 1 评论 -
由bugku baby lfi 2一题引入LFI漏洞(本地文件包含)
"./" 的作用是将文件路径 "./languages/../../../../../../etc/passwd" 解释为相对于当前工作目录的路径。我们的目标是要包含到/etc/passwd,那显而易见需要我们跳到根目录再进行包含,这里试了../../../../../etc/passwd提示不合法,那我们先访问当前目录下的languages再尝试跳回根目录,再去访问我们的目标。根据选择语言的提示,我们的参数名可能是language,尝试了file,language作为参数名后确定传参给language。原创 2023-10-25 00:49:03 · 826 阅读 · 3 评论 -
Vulnhub靶机 JIS-CTF-VulnUpload-CTF01详解
每个设备都会被分配一个唯一的IP地址,以便进行通信。passwd:30:technawi:x:1000:1000:technawi,,,:/home/technawi:/bin/bash:这是系统用户密码文件(passwd)中的一行,其中包含了"technawi"的用户名及其相关信息。我们能够定位到mysql/conf.d/credentials.txt,打开/etc/mysql/conf.d/credentials.txt,得到flag和用户technawi的密码,去到kali使用ssh登录。原创 2023-10-24 23:01:04 · 209 阅读 · 0 评论 -
适合新手的php反序列化pop链构建思路和原理(有例题,无echo调用tostring)
对于这个pop链的执行过程,可以进一步详细解释。首先,让我们逐步追踪反序列化的过程:反序列化开始时,会先对最内层的对象a进行反序列化,即将‘a进行反序列化,即将‘var_1属性赋值为字符串然后,对对象d进行反序列化,它的‘d进行反序列化,它的‘p__get()`函数,返回对象$a的结果。接下来是对象c的反序列化,其中‘c的反序列化,其中‘z__get()__get()`函数,将对象a返回给对象a返回给对象c。最后,对对象b进行反序列化,它的‘b进行反序列化,它的‘q__wakeup()函数。原创 2023-10-24 00:12:11 · 653 阅读 · 0 评论 -
NewstarCTF2023 WEB [WEEK3] 题目及思路
提示了LFI to RCE,搜相关资料可知然后使用蚁剑链接。原创 2023-10-23 14:39:34 · 1316 阅读 · 0 评论