Kingkk's Blog.

Kingkk's Blog.

热爱Web但是技术渣/或许是个黑客

网鼎杯writeup-web
前言感觉又是一对web狗极度不友好的比赛,一开始网络环境都是奔溃的,正紧能做题已经是最后两个半小时了。第二道题还是最后一个半小时放出来的,相当难受了。(i春秋真的可以升级下服务器了。。。 不过spider这道反日爬虫的题目感觉还是很有意思的,加上最近刚学的xss和redis,决定还是好好复现一下 spider题目给了提示说是动态爬虫,一开始对这个不是很了解,大意应该就是自带js解析,类似于浏览器会自动加载js,然后再抓取里面的内容。毕竟这年头ajax那么流行,只抓纯html页面怕是没什么内容。 可以写一个简单的测试样例 12345<a id="a">123</a>...
xss练习记录
前言由于各种原因吧,之前也没好好学过xss,就知道简单的闭合弹个窗什么的,趁暑假有时候,系统的学习一下xss。毕竟xss也是web安全的一个重头戏。而且看完一叶飘零师傅的文章,感觉xss比我之前想象的要强的多,也可以达到很强的破坏力。 就先和刷sqllibs一样吧,做一些题目练手。 prompt.mllevel 0比较简单了,没做什么过滤和防护,闭合双引号就能逃逸出来了 level 1做了一些过滤,不允许输入<xxx>、</xxx>形式的标签 12345function escape(input) { var stripTagsRE = /<...
redis未授权访问与ssrf利用
Redis未授权访问About Redis简介redis是一种key-value键值对的非关系型数据库,默认运行在6379端口 它启动时不会像apache一样,以一种www-data低权限身份运行。而是以运行者的身份,例如用root权限直接运行redis时,redis的权限就是root权限 其次它的默认配置是无需密码的,也就造成了默认的未授权访问 redis还支持本地存储,也就导致了任意文件写入。从而可以写入私钥,利用私钥直接ssh登录服务器。 一些常用命令连接redis 1redis-cli -h 192.168.85.132 查看版本信息 1192.168.85.132:6379&g...
Flask debug pin安全问题
前言之前在国赛决赛的时候看到p0师傅提到的关于Flask debug模式下,配合任意文件读取,造成的任意代码执行。那时候就很感兴趣,无奈后来事情有点多,一直没来得及研究。今天把这个终于把这个问题复现了一下 主要就是利用Flask在debug模式下会生成一个Debugger PIN 12345kingkk@ubuntu:~/Code/flask$ python3 app.py * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Deb...
docker 笔记
前言上学期寒假开始就稍微了解了下docker,无奈用的不是很多,也不是很懂 后来被强制性要求使用了几次docker(不得不说,安装配置问题一直令我很头大),就也算勉强能起来一个服务了 用了几次之后就决定系统的总结一下docker的使用,因为只是一些总结,更多的只是针对于我个人用的,不官方,不权威,不系统 Docker的三大概念镜像(Images) Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 可以通过docker...
迟学的哈希长度扩展攻击
前言本来这个哈希长度扩展攻击应该在一年前刷实验吧的时候就应该解决的。但是由于那时候实在看不懂,再加上有点偷懒,就把这部分给跳了时隔一年,在学习中偶尔有碰到这个(虽然不是很多),感觉没有想象中那么鸡肋,就决定重新捡起来学习一下 不过,就算过了一年,发现依旧是那么菜,看了一整天的分析博客,才勉强理清逻辑 攻击的用途和原理用途感觉这个还是很重要的,更多时候需要知道的是怎么用,在什么环境下才能利用这种漏洞 12在 $hash = md5($secret.$key) 中已知 $hash 和 $key 以及 $secret 的长度时 可以找到另一个 $_hash 和 $_key 使得 ...
Typecho反序列化漏洞复现
前言之前一直就听过这个漏洞,影响还是蛮大的。但是之前一直没有时间复现。最近想着没有搞过这个类型的漏洞,恰好这里有一个活生生的案例,就把php反序列化总结了下,分析了下这个漏洞。看完分析文章,我只想说,流批。叫我就算告诉我这有漏洞我也找不到触发链。orz 漏洞分析漏洞发生在install.php中。直接搜索unserialize关键字就能找到,大约283行的样子1$config = unserialize(base64_decode(Typecho_Cookie::get('__typecho_config'))); 跟进Typecho_Cookie中的get方法123456publi...
php反序列化漏洞
序列化与反序列化目的和意义 序列化:把对象转换为字节序列的过程。反序列化:把字节序列恢复为对象的过程。 其目的是为了将一个对象通过可保存的字节方式存储起来这样就可以将学列化字节存储到数据库或者文本当中,当需要的时候再通过反序列化获取 类的序列化在反序列化对象之后,需要当前作用域中存在该类的定义,否则php无法将类对应到指定类12$ser = 'O:6:"kingkk":1:{s:4:"test";s:3:"123";}';print_r(unserialize($ser)); 运行结果:12345__PHP_Incomplete_Class Object( ...
简析XXE
XML更详细的XML介绍 https://blog.csdn.net/com_ma/article/details/73277535 个人理解XML是一种较为通用的数据交互格式,在json出现之前较为流行,近几年逐渐被json所替代。XML的格式类似于html,是html的超集。用于标记数据,大多数编程语言也内置了对XML的处理 XML格式主要由XML声明、文档类型定义(DTD)、文档元素构成12345678910111213141516<?xml version="1.0" ?> <!-- XML声明 --><!DOCTYPE note[ &l...
phpinfo with LFI
phpinfo with LFI利用场景当存在一个任意文件包含的页面,然而又找不到可以包含的文件,且有phpinfo页面时可以利用phpinfo页面,找到上传的tmp文件,进行条件竞争,生成想要获得shell 利用原理在对一个页面进行文件上传时,无论这个页面将来是否要利用这个文件,php都会将这个文件保存成一个临时文件,默认为 tmp/php[\d\w]{6}关于这个文件的信息可以通过$_FILES变量获取,这个临时文件将在脚本执行结束时被php销毁 对一个phpinfo页面上传文件时,可以在phpinfo中找到该临时文件的文件名 此时,我们可以利用条件竞争,在php文件销毁之前利用...
kingkk
FRIENDS
mt FAtwAER