Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

不安全的投票系統

Posted on 2007 年 4 月 26 日2021 年 3 月 12 日 By 日落 在〈不安全的投票系統〉中尚無留言

今天碰巧遇到一個不安全的投票系統,被我抓到幾個漏洞惡搞,順便做一下筆記免得自己以後也犯了這個錯誤。

下圖是一個幼稚園的「親子臉」比賽,總投票人數已經超過 70 萬人,第一名還有 50 萬票,如果這是真的,我看他以後可以準備去選總統了。

錯誤一:沒有鎖 IP
嚴謹的網路投票系統,至少會對已投票的 IP 進行封鎖,雖然 ADSL 用戶斷線重新連線後可以取得新的 IP,但是可以減少做票的可能性。這個投票系統是使用 cookies 當作以投票的依據,但是 cookies 可以刪除,甚至我可以讓瀏覽器不儲存 cookies,這樣不是很容易做票嗎?

錯誤二:後端沒有做驗證
其實在網頁上面已經用 JavaScript 寫好一人只能選二票的規則,但是我可以把網頁另存新檔以後在改寫,把 JavaScript 全部修掉讓表單資料直接送出,很容易做到。

因為前端做了檢查後端就直接處理資料,實在是很粗心大意。因為如此,我可以用 JMeter 直接把資料用 POST 的方式送出去讓他處理,另外我發現更好玩的事情:他用無限迴圈處理資料直到結束才跳出迴圈,所以我可以一次送出超過投票選項數量的資料,明明只有 23 個選項,我一次送出 500 個結果,他照樣新增進資料庫裡一點都不懷疑。

大家應該知道 JMeter 是什麼東西,用了以後的結果就是:他的伺服器性能每秒能處理 250 query 左右,還算不錯。 :P

Tags:程式設計, 資訊安全

文章導覽

Previous Post: Mercury QTP Demo
Next Post: PageRank 提高了!

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.