那些年干過的事(一)—php電商網(wǎng)站入侵及防護(hù)

背景

偶遇一從事電商的朋友犀填,閑談?wù)f到了他的電商網(wǎng)站史飞,他不理解自己的網(wǎng)站是如何被破解的牵舱,問我能否幫忙看看他的網(wǎng)站存在哪些安全漏洞喧务,說實(shí)話當(dāng)時(shí)偶并沒有研究過網(wǎng)站破解及安全防護(hù)赖歌,也是一時(shí)興起抱著學(xué)習(xí)的態(tài)度答應(yīng)了朋友。

目標(biāo):

尋找網(wǎng)站漏洞獲取后臺(tái)數(shù)據(jù)功茴,提供修復(fù)建議

工具及手段:

google庐冯、UE、Sqlyog坎穿、SQL注入

方式方法:

1展父、了解目標(biāo)網(wǎng)站

訪問朋友網(wǎng)站,通過網(wǎng)站風(fēng)格玲昧、網(wǎng)頁后綴栖茉、版權(quán)信息等判斷網(wǎng)站為基于開源EC-SHOP進(jìn)行簡(jiǎn)單整合后部署的,開發(fā)語言php孵延,版本號(hào)v2.5.0吕漂。

2、搜索資料

通過google搜索ec-shop介紹及其漏洞尘应,下載ec-shop程序惶凝,網(wǎng)上公布了很多ec-shop的漏洞,主要利用SQL注入的方式犬钢。

搜索到user.php頁面存在注入漏洞苍鲜,//xxx.com/user.php?act=order_query&order_sn=21,其中order_sn并沒有對(duì)字符進(jìn)行檢查,可以通過構(gòu)造特殊字符如:user.php?act=order_query&order_sn=',其中構(gòu)造的參數(shù)為英文單引號(hào)玷犹,頁面會(huì)返回sql錯(cuò)誤提示混滔。

3、搭建測(cè)試環(huán)境

工欲善其事必先利其器,我們不能上來就拿朋友的網(wǎng)站開火遍坟,還是自己搭建一個(gè)學(xué)習(xí)學(xué)習(xí)拳亿,當(dāng)然如果需要的話,還可能要讀一下源代碼愿伴,以便找到更好的構(gòu)造方法肺魁。

在網(wǎng)上下載到ecshop的程序,結(jié)合安裝部署說明在本地搭建ec-shop測(cè)試環(huán)境隔节。

4鹅经、利用漏洞進(jìn)行安全測(cè)試

使用在google上搜索到的常用漏洞進(jìn)行試驗(yàn),

訪問//localhost/user.php?act=order_query&order_sn='怎诫,返回的頁面讓我和小伙伴都驚呆了瘾晃。截圖如下

這個(gè)頁面告訴我們單引號(hào)被當(dāng)作sql語句直接執(zhí)行了,而且系統(tǒng)很豪爽的把sql的出錯(cuò)信息完整的告訴了大家幻妓,通過這個(gè)返回頁面我們可以知道后臺(tái)的表名稱保留了ecshop的默認(rèn)表蹦误。

系統(tǒng)執(zhí)行的SQL語句為SELECT order_id, order_status, shipping_status, pay_status, shipping_time, shipping_id, invoice_no, user_id FROM `ecs_order_info` WHERE order_sn = ''' LIMIT 1 ),請(qǐng)注意我們輸入的字符串會(huì)直接放入WHERE order_sn = ''的雙引號(hào)內(nèi)肉津。熟悉SQL的同學(xué)們可以充分發(fā)揮你們的想象力了强胰,提示下使用union(別小看這些平時(shí)不太起眼的詞呀)。

這個(gè)漏洞相當(dāng)于告訴大家妹沙,我給你們一個(gè)入口偶洋,可以執(zhí)行sql語句,而且還可以把結(jié)果返回給你顯示距糖,太恐怖了玄窝,如果sql溝通得當(dāng),我們可以得到后臺(tái)數(shù)據(jù)庫中任何想要的信息悍引。

既然這么多信息都能拿到恩脂,那什么最重要呢,其實(shí)我們只要拿到那個(gè)最重要的趣斤,其他的都很有更好的辦法獲得东亦,聰明的朋友也許想到了,那就是獲取管理員密碼唬渗,你想想管理員密碼都能拿到了典阵,直接進(jìn)入后臺(tái)管理界面,通過正常的頁面就能得到其他任何信息了镊逝。

那么怎么獲得管理員密碼信息呢壮啊?是不是覺得激動(dòng)人心的時(shí)刻到了,事實(shí)上從發(fā)現(xiàn)漏洞撑蒜,到漏洞發(fā)揮價(jià)值是一個(gè)煎熬也是令人激動(dòng)的過程歹啼。

首先通過本地環(huán)境的數(shù)據(jù)庫知道管理員信息存放在表ecs_admin_user表中玄渗,主要字段名user_name,password,那么獲取用戶名密碼的簡(jiǎn)單sql為select username,password from ecs_admin_user;

考慮union的語法需要前后的字段數(shù)量狸眼、類型要一致才可藤树,SELECT order_id, order_status, shipping_status, pay_status, shipping_time, shipping_id, invoice_no, user_id FROM `ecs_order_info` WHERE order_sn = '' LIMIT 1 )我們可構(gòu)造union select 1,2,3,4,5,6,concat(user_name,0x7c,password),8 fromecs_admin_user,其中0x7c為構(gòu)造一個(gè)分隔符拓萌,便于區(qū)分用戶名密碼岁钓,那我們把整個(gè)sql連接起來在數(shù)據(jù)庫中執(zhí)行查詢,看是否能得到想要的結(jié)果微王,至于在如何在數(shù)據(jù)庫中執(zhí)行查詢驗(yàn)證我就不再這里贅述了屡限,經(jīng)過驗(yàn)證sql語句正確可以執(zhí)行。

第二步炕倘,我們將這個(gè)sql放到url中钧大,//localhost/user.php?act=order_query&order_sn='union select 1,2,3,4,5,6,concat(user_name,0x7c,password),8 fromecs_admin_user,看結(jié)果,是不是很失望罩旋,并沒有返回我們想要的結(jié)果啊央,通過查看錯(cuò)誤提示,發(fā)現(xiàn)sql語法有錯(cuò)誤涨醋,url中可以看到在union之前我們添加一個(gè)單引號(hào)瓜饥,而網(wǎng)站在構(gòu)造后臺(tái)sql時(shí)會(huì)在order_sn的值兩邊都添加單引號(hào),這樣最后構(gòu)造的sql是語法不正確的东帅,怎么解決呢? 還得感謝sql提供的好東東 /* 球拦,這個(gè)特殊語句用于注釋后面的內(nèi)容靠闭,我們把它加在我們構(gòu)造的字符之后,就可以把不需要的內(nèi)容屏蔽了坎炼,從而得到一個(gè)可執(zhí)行的sql語句了愧膀。

第三步,再試//localhost/user.php?act=order_query&order_sn='union select 1,2,3,4,5,6,concat(user_name,0x7c,password),8 fromecs_admin_user/*谣光,怎么樣檩淋?是不是很激動(dòng)呢!

第四步萄金,激動(dòng)之后定睛一看蟀悦,不對(duì)呀,密碼怎們是那么長(zhǎng)一串字符呢氧敢,嘿嘿日戈,我悄悄的告訴你,那是用md5做加密的孙乖,是不是有些灰心了浙炼,折騰了半天怎們拿到的密碼還不能用呢份氧,別灰心,要有耐心弯屈,要抱著水來土掩兵來將擋的精神蜗帜,不折不撓,碰到攔路的要嗎直接干掉要嗎想辦法繞過资厉。至于md5密碼如何使用網(wǎng)上有很多辦法厅缺,本文中就不描述了,當(dāng)然如果有必要的話酌住,我會(huì)單獨(dú)寫文件介紹店归。

再給大家贈(zèng)送一個(gè)附加信息,上述方法只會(huì)取數(shù)據(jù)庫中的第一個(gè)管理員密碼酪我,如果想獲取其他行的管理員密碼消痛,也有應(yīng)辦法,在sql后 增加limit語句 from ecs_admin_user limit 0,1/*都哭,limit的語法大家可上網(wǎng)查找秩伞。

第五步,通過管理員賬號(hào)密碼登錄后臺(tái)欺矫,成功I葱隆!穆趴!后臺(tái)數(shù)據(jù)都暴露與我的眼前脸爱!

第六步,既然都準(zhǔn)備好了未妹,就要真刀實(shí)槍的上陣了簿废,訪問朋友網(wǎng)站,開火络它,一切順利族檬,登錄后臺(tái)成功。告知朋友已經(jīng)過測(cè)試化戳,其網(wǎng)站存在漏洞单料。當(dāng)我把管理員的密碼告訴他時(shí),他震驚了点楼。

第七步扫尖,我們的目的不是攻擊網(wǎng)站,是幫朋友提供解決辦法提高網(wǎng)站安全性掠廓,不能忘記目的呀藏斩,要不就走上歪路了,呵呵却盘。其實(shí)辦法也很簡(jiǎn)單狰域,如果會(huì)改代碼的話增加sql校驗(yàn)即可媳拴。

當(dāng)然朋友是小白,這種方法他肯定不會(huì)了兆览,我就告訴他最笨的辦法屈溉,其實(shí)ecshop已經(jīng)公布了補(bǔ)丁,只是這哥們太懶沒有升級(jí)抬探,到ecshop下載補(bǔ)丁包升級(jí)網(wǎng)站程序子巾,解決此問題。

以上sql注入語句不是本人原創(chuàng)小压,都是網(wǎng)上搜集到方法线梗,我只是原封不動(dòng)的利用或者略覺修改利用。


學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話怠益,歡迎加入技術(shù)愛好者交流群373107565仪搔,我們一起學(xué)技術(shù)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蜻牢,一起剝皮案震驚了整個(gè)濱河市烤咧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抢呆,老刑警劉巖煮嫌,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異抱虐,居然都是意外死亡昌阿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門恳邀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懦冰,“玉大人,你說我怎么就攤上這事轩娶《蹋” “怎么了框往?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵鳄抒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我椰弊,道長(zhǎng)许溅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任秉版,我火速辦了婚禮贤重,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘清焕。我一直安慰自己并蝗,他們只是感情好祭犯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滚停,像睡著了一般沃粗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上键畴,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天最盅,我揣著相機(jī)與錄音,去河邊找鬼起惕。 笑死涡贱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惹想。 我是一名探鬼主播问词,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼勺馆!你這毒婦竟也來了戏售?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤草穆,失蹤者是張志新(化名)和其女友劉穎灌灾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悲柱,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锋喜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豌鸡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘿般。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涯冠,靈堂內(nèi)的尸體忽然破棺而出炉奴,到底是詐尸還是另有隱情,我是刑警寧澤蛇更,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布瞻赶,位于F島的核電站,受9級(jí)特大地震影響派任,放射性物質(zhì)發(fā)生泄漏砸逊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一掌逛、第九天 我趴在偏房一處隱蔽的房頂上張望师逸。 院中可真熱鬧,春花似錦豆混、人聲如沸篓像。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽员辩。三九已至拍柒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屈暗,已是汗流浹背拆讯。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留养叛,地道東北人种呐。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像弃甥,于是被迫代替她去往敵國(guó)和親爽室。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • CREATE TABLE IF NOT EXISTS ecs_order_info (order_id mediu...
    cookie口閱讀 15,673評(píng)論 0 16
  • 姓名:于川皓 學(xué)號(hào):16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/sq...
    道無涯_cc76閱讀 1,934評(píng)論 0 2
  • 剛剛結(jié)束了項(xiàng)目期,最近對(duì)ecshop用的也算比較熟了瓶珊,所以給大家分享出來啸箫,如果不是一定要用ecshop大家最好還是...
    寄去遠(yuǎn)方的盛夏閱讀 1,764評(píng)論 1 4
  • 一套實(shí)用的滲透測(cè)試崗位面試題,你會(huì)嗎伞芹? 1.拿到一個(gè)待檢測(cè)的站忘苛,你覺得應(yīng)該先做什么? 收集信息 whois唱较、網(wǎng)站源...
    g0閱讀 4,818評(píng)論 0 9
  • SQL注入 概念 危害 原理 實(shí)例 防御 基礎(chǔ) - ### SQL語句所用符號(hào)不同數(shù)據(jù)庫的sql注入與提權(quán)常見S...
    yddchsc君閱讀 1,312評(píng)論 1 10