SQL手注
导语SQL注入漏洞作为臭名昭著的漏洞,已经有很多全自动攻击的工具了,但是我们是优秀的同学,我们要会用工具,还知道工具的原理。
寻找SQL注入漏洞SQL注入常常出现在可以传递参数的位置,包括URL参数、搜索框、目录名、文件名等等,很多马虎的管理者因为对参数的过滤不严导致被攻击者所利用。常见判断是否存在注入的语句有数字型:
and 1=1/and 1=2or 1=1/or 1=2\+ \- \* / \> < < = \> = \*1 like1/1 like 2
字符型:
and '1'='1 /and '1'='2or '1'='1/or '1'='2+' /+' -' /-' \> < <= \>=1' ...
Makefile
导语众所周知,一个程序从源码到可执行需要经过编译和链接两个步骤,而Makefile文件描述了整个工程的编译、链接规则。作为一个给力的Unix程序猿,必须要会写makefile嗷!
编译、链接以C和C++举例,对于一段源码,首先要进行编译的过程,将源码编译成为中间代码文件,在windows下后缀名为.obj,在UNIX下后缀名是.o。然后进行链接过程,将所有的中间代码连接起来。编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中 ...
GCC
导语GCC是GNU Compiler Collection的缩写,包含gcc、g++等编译工具。这个工具不仅包含编译器,还包含其他工具集,例如ar、nm等。今天简单的讲一讲这个工具。
简介GCC能编译C、C++、Objective-C、Fortran、Java、Ada等语言。GCC可以在不同的硬件平台编译,即支持交叉编译。GCC的c编译器是gcc,其命令格式为
Usage:gcc [options] file...
GCC支持默认拓展名策略,下表是GCC下默认文件拓展名的含义。GCC常用的编译器有头文件和库文件的默认路径是
单个文件编译成执行文件$gcc hello.c
会在当前目录下自动生成文件名为a.out的可执行文件。如果想要指定生成的可执行文件名,啧加一个-o参数
$gcc -o hello hello.c
此时就会出现一个叫hello的可执行文件。
编译生成目标文件编译的过程分为如图所示源文件、目标文件和可执行文件是常用的三个词。源文件即是存放源代码的文件。目标文件是指经过了编译器的编译生成的二进制机器码,但是目标文件的一些函数过程没有相关的指示和说明,所以一般不可执行。 ...
备份文件泄露漏洞
导语这些信息泄露的漏洞只有马虎的程序员才会犯,希望大家都不要犯错哦~这些题在ctfhub里都可以重做哒。
网站源码可能会有马虎的程序员将整个网站的源码打包起来且放在了网站目录下,导致我们可以直接获取网站的源码,给我们进一步渗透提供了更加广泛的思路。题目给了我们常见的备份文件字段和后缀,那我们直接写脚本就行了
#! python3import requestsurl1 = 'http://challenge-8b081249201cd9d3.sandbox.ctfhub.com:10080/'list1 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']list2 = ['tar', 'tar.gz', 'zip', 'rar']for i in list1: for ...
FAT32文件系统
导语了解文件在硬盘中的存放方式有利于我们更加简便简介的了解计算机系统。今天简述FAT32。
FAT32文件系统结构如图
动手实践MBR管理员启动winhex,选择tools->open disk即可打开磁盘。首先映入眼帘的是MBR。它占据512字节,描述了卷的各种性质。 0x00~0x02:3字节,跳转指令。 0x03~0x0A:8字节,文件系统标志和版本号。 0x0B~0x0C:2字节,每扇区字节数 0x0D~0x0D:1字节,每簇扇区数 0x0E~0x0F:2字节,保留扇区数 0x10~0x10:1字节,FAT表个数 0x11~0x12:2字节,FAT32必须等于0,FAT12/FAT16为根目录中目录的个数; 0x13~0x14:2字节,FAT32必须等于0,FAT12/FAT16为扇区总数。 0x15~0x15:1字节,哪种存储介质,0xF8标准值,可移动存储介质。 0x16~0x17:2字节,FAT32必须为0,FAT12/FAT16为一个FAT 表所占的扇区数。 0x18~0x19:2字节,每磁道扇区 ...
vim快速上手
导语终端使用者的诸位一定对vim不陌生,作为一个命令行下的文本编辑软件,vim可谓功能强大。然而对很多年轻人(比如之前的时候的我),vim功能强大就强大在他能在终端编辑文本,vim和vi有嘛区别?我不到啊?今天来说一说vim的常用的提高文本编辑效率的快捷键。
安装使用linux系统自带的软件管理工具即可,比如apt yum之类的。
使用vim建立文件vim主要分为普通模式和插入模式,普通模式是命令模式,插入模式是编辑模式。顾名思义,编辑模式是修改文本的内容的,命令模式是进行命令操作的。之前我是憨憨的时候是因为我只知道能进入编辑模式,各种方便的快捷键一概不知,这里我们来安排一哈。
建立文件$vim hello.c
进入插入模式打开文件后我们默认在普通模式,按i进入插入模式,最下面会显示– INSERT –
退出并保存在普通模式下输入:wq保存并退出vim编辑器
使用vim编辑文本移动光标hjklvim在普通模式下移动光标的按键是hjkl,h左 j下 k上 l右这个移动方式的好处是我们不用把右手进行位移放到方向键上了,看似没啥用,却实际上对体验有所优化。
删除字符 x dd u Ctr ...
图片のEXIF信息
导语今天的导语不想写了,么么哒。反正蒙头就放EXIF的文档就完事了!Exif 2.3官方标准Exif文件格式说明
第二个是好东西,非常的全面细致,但是正如我们不愿意拿字典当完全的工具书,他有点超出我所需要的。好在我还搜到了大佬稍微整理了一下的。Exif文件格式描述
什么是 EXIF?基本上, Exif文件格式与JPEG 文件格式相同. Exif按照JPEG的规格在JPEG中插入一些 图像/数字相机 的信息数据以及缩略图像. 于是你能通过与JPEG兼容的互联网浏览器/图片浏览器/图像处理等一些软件 来查看Exif格式的图像文件. 就跟浏览通常的JPEG图像文件一样。
快速入门JPEG的格式和标记JPEG文件开始于一个二进制的值 ‘0xFFD8’, 结束与’0xFFD9’. 在JPEG的数据 中有好二进制 0xFFXX 的数据, 它们都统称作 “标记”, 并且它们代表了一段JPEG的 信息数据。0xFFD8是SOI图像起始(Start of image), 0xFFD9则是EOI图像结束 (End of image)。这两个特殊的标记的后面都不跟随数据, 而其他的标记在后面则会附带数据。 ...
算法的时间复杂度
导语算法是程序猿们必修的一门功课,它指:1.为解决某一问题定义的计算过程;2.是通过一个有限的指令序列集合对特定问题进行求 解的一种计算执行描述。评估一个算法的优劣的方式是复杂度,今天来具体讲一讲时间复杂度的计算方法。
典型的时间复杂度函数和他们对应的时间如下图
四个符号O符号假设:f(n)和g(n)是从自然数集到非负实数集里的两个函数定义:如果存在正的常数C和自然数n0,使得当n≥n0时,有f(n)≤C·g(n),则称函数f(n) 在n 充分大时有上有界,且g(n) 是它的一个上界,记做f(n)=O(g(n))人话:当自变量大于某个值以后,f的函数值永远小于g的函数值乘以一个常数。在这里,我们要明确的是,对于 $an^2+bn+c$,在n很大的时候,$a$、$bn+c$是不起作用的,也就是说,在进行阶的运算时,常系数、低的阶和常数项可以忽略。只要用这种放缩放缩来放缩$n^2$ > nlogn > n > logn即可重要性质:如果有$\lim\limits_{n\to+\infty}\frac{f(n)}{g(n)}\not=0$那么f(n)=O(g(n))
o符 ...
憨憨的git使用教程(1)
导语git一开始在linux平台使用,但后来我们也移植到了windows。git在多人协作的软件开发非常有用,但是我是憨憨,不咋会用。所以学习了git使用,搁着做个简单的学习笔记。
git简介git 是一个版本控制工具。说到版本控制,git一般横向对比于SVN,他们有如下的区别点。
Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
git完整命令手册
操作安装在官网上即可找到对应平台的安装包
创建一个新 ...
EZ密码
导语在我们个人构架的小计算机系统中,常常会用到一些简单的小密码,这些小密码可以让我们的信息更加隐秘,同时不需要服务器付出太大的计算代价,对于更加庞大的计算机系统,尤其是保密性十分重要的计算机系统,更会用很强的密码,今天来介绍一些简单的密码。
凯撒密码就是crypto=(plain+k) mod 26,是远古时期的密码,说到底人手写都可能自己就破解了。其中ROT13密码就是k为13的凯撒密码
维吉尼亚密码维吉尼亚密码的基础是凯撒密码,基本上就是加强了密钥的强度。在凯撒密码里,我们的密钥就是一个单纯的数字,而在维吉尼亚密码里,他变成了一个单词。他的加密过程是:1、如果密钥没有明文长,那就多次重复密钥,让他和明文一样长。 2、对于明文中的第i位,加上密钥的第i位所代表的数字的凯撒密码比如说我们设置维吉尼亚密码的单词为handsome,明文是gunishandsome,那么密文的对应是这样的plain gunishandsomekey handsomehandscrypted g+h=o u+a=v……以此类推这样就让破译变得困难了很多。
栅栏密码栅栏密码其实就是调了下顺序,比如对Y ...