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 外部实体注入漏洞
100 0
|
3月前
|
SQL 监控 安全
命令注入攻击
【8月更文挑战第17天】
67 2
|
6月前
|
安全 应用服务中间件 PHP
文件上传解析漏洞,以及检测方式的绕过
文件上传解析漏洞,以及检测方式的绕过
|
6月前
|
关系型数据库 MySQL
Mysql注入 -- 注入类型
Mysql注入 -- 注入类型
44 1
|
6月前
|
SQL 数据库
SQL注入基础(报错注入及延时注入)
SQL注入基础(报错注入及延时注入)
49 0
|
6月前
|
安全 关系型数据库 MySQL
Mysql注入 -- 延时注入
Mysql注入 -- 延时注入
56 0
|
11月前
|
Python
关于SSTI模块注入的常见绕过方法
关于SSTI模块注入的常见绕过方法
228 0
|
监控 安全 JavaScript
某远控RCE绕过某数字的利用方式
某远控RCE绕过某数字的利用方式
280 2
|
SQL Web App开发 安全
Smanga未授权远程代码执行漏洞(CVE-2023-36076) 附加SQL注入+任意文件读取
Smanga存在未授权远程代码执行漏洞,攻击者可在目标主机执行任意命令,获取服务器权限。
292 0