DSBCTF--单身杯
...
web入门php篇-ctfshow
php特性放一下主要的知识点 正则表达式元字符 正则表达式修饰符 i (case-insensitive): 使匹配不区分大小写。例如,/a/i 可以匹配 a 和 A。 m (multi-line mode): 改变 ^ 和 $ 的行为,使其能够匹配每行的起始和结束,而不仅仅是整个字符串的开头和结尾。 s (single-line mode, also known as dotall): 使 . 能够匹配包括换行符在内的任何字符。默认情况下,. 不会匹配换行符。 x (extended mode): 允许在正则表达式中加入空白字符和注释以提高可读性。空白字符在模式中被忽略(除非在字符类中或经过转义),并允许使用 # 开始注释直到行末。 u (unicode mode): 使正则表达式以 UTF-8 模式解释模式和目标字符串,从而处理多字节字符。 A: 强制 ^ 仅匹配字符串的开头(即使使用了 m 修饰符)。 D: 强制 $ 仅匹配字符串的结尾,而不是行结尾。这在多行模式中常常很有用。 U (ungreedy): 改变量词(如 * 和...
11月学习计划
11月学习计划 ctfshow之php特性 ctfshow之xss 完成tinkphp5框架的学习 完成本月所有赛题的wp 完成玄机至第三章
2024玄武杯wp--web方向
webez_flask打开zip文件中的app.py 12345678910111213141516171819from flask import Flask, render_template_string, render_templateapp = Flask(__name__)#创建一个flask实例@app.route('/hello/')def hello(): return render_template('hello.html')@app.route('/hello/<name>')def hellodear(name): if "ge" in name: return render_template_string('hello %s' % name) elif "f" not in name: return render_template_string('hello...
浅谈Flask下ssti漏洞
...
web入门xss篇--ctfshow
XSS跨站漏洞 0x01xss前言之前对xss跨站攻击只是停留在概念的理解上,这次开始做ctfshow的xss部分,那就深入学习一下xss吧 0x02xss介绍原理 简单来说就是恶意攻击者会在 Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行 概念XSS (Cross Site Scripting) 攻击全称跨站脚本攻击,是一种经常出现在 Web 应用中的计算机安全漏洞。 站中包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到称XSS的威胁,而静态站点则完全不受其影响。 跨站脚本攻击是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入网页,其他用户在浏览网页时会受到影响,恶意用户利用xss 代码攻击成功后,可能得到很高的权限、私密网页内容、会话和cookie等各种内容 攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin...
web入门爆破篇-ctfshow
知识点:暴力破解原理暴力破解实际就是疯狂的输入密码进行尝试登录,针对有的人喜欢用一些个人信息当做密码,有的人喜欢用一些很简单的低强度密码,我们就可以针对性的生成一个字典,用脚本或者工具挨个去尝试登录。 暴力破解前提1.没安装waf,或者安装了waf没有开启流量拦截 2.没有规定输入密码多少次后无法继续输入 3.没有验证码,或者验证码生成在数据包中与输入的验证码进行比对。 4.判定输入密码次数等是根据数据包中的ip等判定,我们就可以用字典变换ip去绕过 burpsuite爆破的四种模式四种模式分别为:Sniper、Battering ram、Pitchfork、 Cluster bomb(推荐使用) 1.Sniper(狙击手)作为比较常用的模式,Sniper的作用是对其中选定的参数一个一个依次遍历字典并且替换然后测试。sniper只能默认对第一个参数进行修改,而无法对两个参数同时进行爆破。 2.Battering ram(攻城锤)不同于sniper,Battering...
web入门反序列化篇-ctfshow
反序列化知识点: 序列化(Serialization)是将数据结构或对象转换成一种可存储或可传输格式的过程。在序列化后,数据可以被写入文件、发送到网络或存储在数据库中,以便在需要时可以再次还原成原始的数据结构或对象。序列化的过程通常涉及将数据转换成字节流或类似的格式,使其能够在不同平台和编程语言之间进行传输和交换。 反序列化(Deserialization)是序列化的逆过程,即将序列化后的数据重新还原成原始的数据结构或对象。反序列化是从文件、网络数据或数据库中读取序列化的数据,并将其转换回原始形式,以便在程序中进行使用和操作。 反序列化的过程中,unserialize()接收的值(字符串)可控通过更改这个值,得到所需要的代码通过调用方法,触发代码执行魔术方法在特定条件下自动调用相关方法,最终导致触发代码。 序列化存储格式php序列化的存储格式是json,我们来理解一下这个字符串的格式 首先利用serialize生成一个字符串 1234567891011<?phpclass me{ public $name="meng"; public...