Von's Blog

Thinking will not overcome fear but action will.

docker入门

前言 以前就一直听说docker在CTF复现和出题方面很方便,也对这个东西很感兴趣,今天特地来学习一下。 docker是什么 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 说了这么多,我总...

SQL注入绕过与sqlmap使用方法总结

前言 最近零零散散地吧sqli-labs刷完了,学到了很多知识。但在里面对于WAF过滤的情况研究得不多,仅起到一个入门的作用,而在CTF中是基本上不会有这么简单的注入的。在这里我写一篇文章对常见的绕过过滤方法进行总结。 过滤了#,– 这种过滤了注释符的我们可以用类似’1’=’1来绕过,比如当闭合方式为’的情况下,我们在语句后面添加 and ‘1’=’1来闭合后面的’,也同时达到了注释的作用...

sqli-labs做题记录(四)

Challenges

Less-54 从这关开始就进入Challenges了,觉得这种模式还是有点新奇的,限制了尝试次数。而且也像CTF一样有要求一个目标的secret key了。这关总共给了10次机会。 1. 127.0.0.1/sqli-labs-master/Less-54/?id=1' and 1=1--+ 2. 127.0.0.1/sqli-labs-master/Less-54/?id=1' an...

sqli-labs做题记录(三)

Stacked Injections

Less-38 这道题其实是在Advanced Injections中,但是我觉得它是属于堆叠注入的,放在第三篇较为合适。 在SQL中,分号(;)是用来表示一条sql语句的结束。我们在;结束一个sql语句后继续构造下一条语句,就会同时执行多条SQL语句。 联合注入也是执行多条语句,其与堆叠注入的区别就在于union执行的语句类型是有限的,只可以用来执行查询语句,而堆叠注入可以执行的是任意的语...

sqli-labs做题记录(二)

Advanced Injections

Less-23 这道题主要是过滤了#,–。这样我们可以使用and ‘1’=’1来闭合’。这里我使用联合查询注入。 127.0.0.1/sqli-labs-master/Less-23/?id=-1' union select 1,2,3 and '1'='1 得出显示位为1,2。 爆库: 127.0.0.1/sqli-labs-master/Less-23/?id=-1' union se...

sqli-labs做题记录(一)

Basic Injections

前言 这几天也算是为了记录自己的成长过程来更新sqli-labs的做题记录。不知道能不能更完,毕竟总共有65关。不管怎么样,努力做到不咕吧。 受限于篇幅设置,我对于每一关的原理肯定没有办法讲得特别详细,但我会尽量讲得通俗易懂,并且给出相应的参考文章。 同时,对于类型相同的题目,我尽量给出不同的解法,来充实,提高自己。 Less-1 这题的考点是union联合查询注入。 对于这种类型,我推...

宽字节注入学习

宽字节注入 前言 什么是宽字节? GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际上只有两字节。宽字节带来的安全问题主要是吃ASCII字符(一字节)的现象。 我们以GBK编码为例进行讲解: 尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范。但仍然有很多,包括国内及国外(特别是非英语国...

SQL报错注入

前言 这几天更新了很多博客,在写博客查资料的过程中也收获了许多。但是今天尴尬的发现,更新的大部分内容都是密码学的。。。 觉得有些对不住web这个老本行,于是决定写一篇关于报错注入的文章来总结总结。 说到SQL报错注入,以前只是知道它的用法,但是对于它的具体原理总是不太理解,今天借这个机会一并说明。 主键重复报错 利用floor()函数使SQL语句报错,实际上是由rand(),count()...

彩虹表

Hash的相关知识 Hash又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。 Hash函数的性质 1.能够根据任意的消息计算出固定长度的Hash值 2.能够快速计算出Hash值 3.消息不同散列值也不同(但是相同的散列值可能来自不同的输入) 4.抗碰撞性:找出任意两个不同的x,x' \in ...

hash长度拓展攻击

hash算法的实现(md5为例) md5算法的实现如下图: 下面详细来说明一下md5的加密过程: 1. 我们要实现对于字符串abc的 md5 的值计算。首先我们要把其转化为 16 进制. 2. 补位 消息必须进行补位,即使得其长度在对 512 取模后的值为 448。也就是说,len(message) % 512 == 448。当消息长度不满 448 bit 时(注意是位,而不是字符串长...