【軟件安全】一次投票活動(dòng)帶來(lái)的反思
作為一個(gè)開(kāi)發(fā)人員坠敷,軟件可用是最低要求,軟件的健壯則是更高的要求砚蓬,軟件安全很多時(shí)候基本等于0矢门。絕大多數(shù)企業(yè)的應(yīng)用,都會(huì)忽略軟件安全的因素灰蛙,看不見(jiàn)的地方有時(shí)候才是真實(shí)的祟剔。
抽絲剝繭
投票頁(yè)面:
遍歷會(huì)員數(shù)量
通過(guò)跟蹤Ajax請(qǐng)求,發(fā)下提交之后摩梧,觸發(fā)ajax
submit?mid=314925&set=2&DATA=85%7C0&voteId=85&voteCateIds=0
修改其中的mid返回以下內(nèi)容
{"data":null,"message":"會(huì)員信息不存在!","status":"FAILURE"}
通過(guò)遍歷mid物延,可以遍歷出他的會(huì)員數(shù)量!
刷票
原理和上面是一樣的仅父,我們修改mid之后叛薯,就可以偽造投票
網(wǎng)站架構(gòu)
修改網(wǎng)址之后浑吟,返回404
JFINAL 1.6 這應(yīng)該是個(gè)框架,經(jīng)過(guò)查閱資料案训,發(fā)現(xiàn)這是個(gè)java框架买置,這時(shí)候事情就好辦多了,我們稍微了解框架强霎,就能獲得這個(gè)后臺(tái)頁(yè)面的登陸地址。
獲取網(wǎng)站數(shù)據(jù)
獲得系統(tǒng)權(quán)限之后蓉冈,事情就很簡(jiǎn)單了城舞,系統(tǒng)總會(huì)要展示數(shù)據(jù)給前端,這時(shí)候基本就是ajax請(qǐng)求寞酿,我們看看他們的請(qǐng)求格式:
admin/member/list?sEcho=3&iColumns=12&sColumns=&iDisplayStart=0&iDisplayLength=14122&mDataProp_0=0&mDataProp_1=1&mDataProp_2=id&mDataProp_3=name&mDataProp_4=id_card&mDataProp_5=gender&mDataProp_6=card_no&mDataProp_7=birth&mDataProp_8=phone&mDataProp_9=&mDataProp_10=status&mDataProp_11=&iSortCol_0=0&sSortDir_0=asc&iSortingCols=1&bSortable_0=false&bSortable_1=false&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=true&bSortable_6=true&bSortable_7=true&bSortable_8=true&bSortable_9=false&bSortable_10=true&bSortable_11=true&name=&card_no=&phone=&_=1502437850901
重要的是這個(gè)字段
iDisplayStart=0&iDisplayLength=14122
他請(qǐng)求的是長(zhǎng)度家夺,我們可以通過(guò)修改iDisplayLength,獲取所有資料伐弹。返回的數(shù)據(jù)包含了用戶(hù)id拉馋,用戶(hù)姓名,手機(jī)號(hào)惨好,生日煌茴,地址,基本就是數(shù)據(jù)庫(kù)所有字段了日川,開(kāi)發(fā)根本沒(méi)有做過(guò)濾蔓腐!
可能他的SQL語(yǔ)句是這樣:
SELECT * FROM table WHERE ID=id
數(shù)據(jù)分析
獲取手機(jī)號(hào)之后,可以進(jìn)行數(shù)據(jù)的分析龄句,很容易看出這個(gè)活動(dòng)的效果回论。
根據(jù)手機(jī)號(hào)獲取歸屬地
https://github.com/SuperID/query-mobile-phone-area
根據(jù)歸屬城市獲取地理坐標(biāo)
https://github.com/lifebeatiful/lat_long_of_major_china_city
數(shù)據(jù)可視化
根據(jù)以上內(nèi)容,結(jié)合百度的echarts分歇,就可以實(shí)現(xiàn)數(shù)據(jù)的可視化傀蓉!
fake
在查看數(shù)據(jù)的過(guò)程中,發(fā)現(xiàn)了大量的這樣的數(shù)據(jù)
嘿嘿职抡,原來(lái)虛假投票已經(jīng)大量的開(kāi)始了葬燎。
總結(jié)
產(chǎn)品的開(kāi)發(fā)總是困難的,從想法到實(shí)現(xiàn)繁调,總是一段漫長(zhǎng)的旅程萨蚕,我們?cè)趯?shí)現(xiàn)產(chǎn)品的同時(shí),也要充分考慮安全的因數(shù)蹄胰,特別是這種面向外部的系統(tǒng)~