商城類電商軟件及服務(wù)提供商--HiShop海商,歡迎您!

注冊(cè)有禮

HiShop / 新零售 / 新零售專題 / 如何登錄進(jìn)銷存系統(tǒng)?講解SQL注入進(jìn)銷存系統(tǒng)登錄

如何登錄進(jìn)銷存系統(tǒng)?講解SQL注入進(jìn)銷存系統(tǒng)登錄

時(shí)間: 2025-01-05 12:04:45閱讀量:
導(dǎo)讀:最新消息報(bào)道,如何登錄進(jìn)銷存系統(tǒng)?登錄進(jìn)銷存系統(tǒng)的方式有很多種,下面小編為大家介紹一種用技術(shù)的手段登錄進(jìn)銷存系統(tǒng),SQL注入進(jìn)行登錄。

  最新消息報(bào)道,如何登錄進(jìn)銷存系統(tǒng)?登錄進(jìn)銷存系統(tǒng)的方式有很多種,下面小編為大家介紹一種用技術(shù)的手段登錄進(jìn)銷存系統(tǒng),SQL注入進(jìn)行登錄。

如何登錄進(jìn)銷存系統(tǒng)?講解SQL注入進(jìn)銷存系統(tǒng)登錄

  關(guān)于“進(jìn)銷存”系統(tǒng)的登錄方法——利用SQL注入進(jìn)行登錄

  “進(jìn)銷存”系統(tǒng)的登錄存在著SQL注入的漏洞,利用這個(gè)漏洞可以繞過(guò)用戶名和密碼的判斷,從而進(jìn)入“進(jìn)銷存”系統(tǒng)。下面,對(duì)于這個(gè)漏洞進(jìn)行具體的說(shuō)明。

  (注:由于系統(tǒng)源代碼可見,于是可以直接通過(guò)代碼來(lái)分析SQL注入,因此不在這里進(jìn)行源代碼語(yǔ)句漏洞試探。)

  1、首先打開登錄頁(yè)面,找到源代碼地址。

  圖1——登錄頁(yè)面的源代碼地址

  2、打開源代碼,找到有關(guān)登錄語(yǔ)句驗(yàn)證的代碼,代碼如下(重要部分已給出注釋):

  3、由代碼中可以看到,關(guān)鍵的登錄判斷語(yǔ)句為:

  sql="select * from login where(username=' "&nowusername&" ' and pwd=' "&md5(nowpwd)&"') or (bianhao=' "&nowusername&" ' and pwd=' "&md5(nowpwd)&"')"

  這段語(yǔ)句會(huì)判斷l(xiāng)ogin表中是否存在輸入的用戶名和密碼,或者用戶編號(hào)和密碼。

  下面,提出sql語(yǔ)句進(jìn)行具體分析:

  SQL語(yǔ)句1:

  select * from login where (username=' "&nowusername&"' and pwd=' "&md5(nowpwd)&" ') or (bianhao=' "&nowusername&"' and pwd=' "&md5(nowpwd)&" ')

  可見,where條件有兩大部分,用or進(jìn)行連接(形式為:select * from login where條件1 or條件2)。因此,or后面的語(yǔ)句是否為真不重要,只要前面(條件1)為真即可。

  再拿出前面的(條件1)語(yǔ)句進(jìn)行分析:

  SQL語(yǔ)句2:

  username=' "&nowusername&" ' and pwd=' "&md5(nowpwd)&"'

  由這段代碼中可以看到,此部分又分為兩個(gè)條件判斷,用and進(jìn)行連接(形式為:條件1and條件2)。

  4、進(jìn)行SQL注入分析

  由上面的登錄代碼分析可見,如果SQL語(yǔ)句2為真,那么SQL語(yǔ)句1也為真?,F(xiàn)在的問(wèn)題是如何讓SQL語(yǔ)句2恒為真。

  現(xiàn)在SQL語(yǔ)句2的形式為:條件1 and條件2,根據(jù)SQL語(yǔ)句1的提示,可以看出,如果SQL語(yǔ)句2形式變成:條件1or條件3 or條件4and條件2,那么可見,即使條件2不為真,如果條件1或者條件3有一個(gè)為真,那么SQL語(yǔ)句2就為真。

  因此,目的就是要添加or條件3 or條件4到語(yǔ)句中,使SQL語(yǔ)句2恒為真。

  5、SQL注入語(yǔ)句構(gòu)造

  username=’ “&nowusername&” ‘ and pwd=’ “&md5(nowpwd)&”‘

  由前面代碼分析看出,如果輸入登錄名為admin,密碼為12345,運(yùn)行時(shí),此段代碼被編譯為:

  username=’ admin ‘ and pwd=’ admin ‘

  通過(guò)編譯后的代碼與后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)對(duì)比,判斷是否存在該用戶。

  可見,輸入的內(nèi)容首先將被替換為相應(yīng)的sql語(yǔ)句內(nèi)容,再進(jìn)行sql語(yǔ)句的執(zhí)行。

  先假設(shè)一下,如果運(yùn)行時(shí),代碼被編譯為:

  username=’ admin ‘or 1=1 or 1=1andpwd=’ admin ‘

  形式為:條件1or條件3 or條件4and條件2,可見條件3恒成立,因此不論條件1和條件2是否為真,此段代碼恒為真。

  再把源代碼拿出來(lái)進(jìn)行對(duì)比:

  預(yù)想結(jié)果:username=’ admin ’or 1=1 or 1=1and pwd=’admin ‘

  相關(guān)代碼:username=’“&nowusername&”’ and pwd=’ “&md5(nowpwd)&”‘

  代碼中標(biāo)紅的內(nèi)容是用戶輸入的內(nèi)容,需要注意的是,在標(biāo)紅的內(nèi)容后面有一個(gè)’對(duì)應(yīng)著前面的’。

  如果輸入的內(nèi)容為:admin’ or 1=1 or 1=1

  代入到標(biāo)紅內(nèi)容,代碼為:

  username=’admin’ or 1=1 or 1=1’ andpwd=’ “&md5(nowpwd)&” ‘

  可見,username=’ admin’為條件1,1=1為條件2,pwd=’ “&md5(nowpwd)&” ‘為條件3,但是需要注意的是1=1后面有一個(gè)“’”,是源代碼中存在的,如果在輸入的時(shí)候,輸入了一個(gè)“’”,那么源代碼中的“’”將缺少對(duì)應(yīng)。

  SQL語(yǔ)句3:

  username=’admin’or 1=1 or 1=1’and pwd=’“&md5(nowpwd)&”‘

  可見,如果輸入內(nèi)容為:admin’ or 1=1,將導(dǎo)致內(nèi)容替換代碼后,“’”會(huì)缺少一個(gè)對(duì)應(yīng)。原因就是我們?cè)谳斎氲臅r(shí)候輸入了一個(gè)“’”。因此,為了讓“’”不缺少對(duì)應(yīng),我們?cè)谳斎氲臅r(shí)候再輸入一個(gè)“’”。

  輸入內(nèi)容為:admin’ or 1=1’

  這時(shí),再代入到相應(yīng)代碼中,編譯后的代碼為:

  源代碼:username=’“&nowusername&”’ and pwd=’ “&md5(nowpwd)&”‘

  代入后:username=’admin’ or 1=1 or 1=1 ’ ’ and pwd=’ “&md5(nowpwd)&” ‘

  可見,這回“’”已經(jīng)不缺少對(duì)應(yīng)了:

  SQL語(yǔ)句4:

  username=’admin’or 1=1 or 1=1’’and pwd=’“&md5(nowpwd)&”‘

  形式為:條件1 or條件2or條件3and條件4

  這時(shí),又出現(xiàn)了一個(gè)問(wèn)題,條件3為:1=1’ ’,這不是正確的條件語(yǔ)句,還要修改一下,改為:

  SQL語(yǔ)句5:

  username=’admin’or 1=1or1=1’’and pwd=’“&md5(nowpwd)&”‘

  刪除1=1使形式改變?yōu)槲覀冃枰模?/p>

  條件1 or條件2or條件3 and條件4

  可見,條件2為:1=1,恒為真,條件3為:’’,是一個(gè)不進(jìn)行判斷的空條件。

  因此,SQL語(yǔ)句5因?yàn)橛袟l件2恒為真,所以SQL語(yǔ)句5恒為真。

  6、總結(jié)分析

  SQL注入的目的是讓SQL語(yǔ)句1恒成立。

  SQL語(yǔ)句1:

  select * from login where (username=' "&nowusername&"' and pwd=' "&md5(nowpwd)&" ') or (bianhao=' "&nowusername&"' and pwd=' "&md5(nowpwd)&" ')

  如果其中的username=' "&nowusername&"' and pwd=' "&md5(nowpwd)&" '恒成立,那么SQL語(yǔ)句1即恒成立。

  語(yǔ)句中的username='"&nowusername&"' and pwd=' "&md5(nowpwd)&"'標(biāo)紅部分是用戶輸入的內(nèi)容?,F(xiàn)在輸入內(nèi)容:

  ’ or 1=1 or ‘

  替換后為:

  username=‘’ or 1=1 or ‘’ and pwd=' "&md5(nowpwd)&"'

  此語(yǔ)句變?yōu)楹愠闪ⅰ?/p>

  (還可以看出來(lái),如果輸入helloworld’ or 1=1 or ‘,系統(tǒng)一樣可以登錄,原因就是前面輸入的都是條件1的內(nèi)容,無(wú)所謂真假,因?yàn)?=1的條件恒為真。)

  7、測(cè)試結(jié)果:

  登錄名為:’ or 1=1 or ‘

  密碼不為空

  圖2——SQL注入

  點(diǎn)擊登錄,登錄成功。

  8、查看登錄日志:

  登錄日志

  可見,使用SQL注入成功登錄后的用戶標(biāo)識(shí)為“-1”,登錄日志頁(yè)面的登錄用戶調(diào)用的是rizi表中的username字段,為什么會(huì)是“-1”,原因留給大家去思考。

  HiShop友數(shù)進(jìn)銷存系統(tǒng),為了對(duì)企業(yè)生產(chǎn)經(jīng)營(yíng)中進(jìn)貨、出貨、批發(fā)銷售、付款等進(jìn)行全程進(jìn)行跟蹤,管理,而設(shè)計(jì)的整套方案。

HiShop友數(shù)專注零售數(shù)字化服務(wù) 專業(yè)為連鎖店提供新零售解決方案,助力連鎖企業(yè)門店網(wǎng)店一體化經(jīng)營(yíng)

立即聯(lián)系我們

將有專人為你做模式講解、功能演示、專業(yè)答疑等

2025-01-05 最新文章
2025-01-05 熱門文章
新零售關(guān)鍵詞
亮點(diǎn)推薦 更多>
  • 門店數(shù)字化經(jīng)營(yíng)
    統(tǒng)籌管理
    數(shù)據(jù)同步
    賦能提效
  • 智慧導(dǎo)購(gòu)賦能
    代客下單
    導(dǎo)購(gòu)種草
    收銀開單
  • 門店?duì)I銷數(shù)字化
    拼團(tuán)砍價(jià)
    分銷裂變
    會(huì)員儲(chǔ)值
  • 私域增長(zhǎng)布局
    社群運(yùn)營(yíng)
    SOP管理
    會(huì)員分層
客戶案例 更多>
  • 廣州酒家線上線下全網(wǎng)全渠道數(shù)據(jù)同步
  • 美心西餅通過(guò)“新零售”重構(gòu)“人貨場(chǎng)”
  • 老板電器B2C+O2O的智能家居平臺(tái)
  • 愛歡洗以服務(wù)驅(qū)動(dòng)洗護(hù)業(yè)務(wù)增值

電話咨詢 微信咨詢 - 預(yù)約演示