js注入攻擊詳細(xì)教程 什么是sql注入?我們常見(jiàn)的提交方式有哪些?
什么是sql注入?我們常見(jiàn)的提交方式有哪些?感謝邀請(qǐng),針對(duì)你得問(wèn)題,我有以下回答,希望能解開(kāi)你的困惑。首先回答第一個(gè)問(wèn)題:什么是SQL 注入? 一般來(lái)說(shuō),黑客通過(guò)把惡意的sql語(yǔ)句插入到網(wǎng)站的表單提交
什么是sql注入?我們常見(jiàn)的提交方式有哪些?
感謝邀請(qǐng),針對(duì)你得問(wèn)題,我有以下回答,希望能解開(kāi)你的困惑。
首先回答第一個(gè)問(wèn)題:什么是SQL 注入?
一般來(lái)說(shuō),黑客通過(guò)把惡意的sql語(yǔ)句插入到網(wǎng)站的表單提交或者輸入域名請(qǐng)求的查詢語(yǔ)句,最終達(dá)到欺騙網(wǎng)站的服務(wù)器執(zhí)行惡意的sql語(yǔ)句,通過(guò)這些sql語(yǔ)句來(lái)獲取黑客他們自己想要的一些數(shù)據(jù)信息和用戶信息,也就是說(shuō)如果存在sql注入,那么就可以執(zhí)行sql語(yǔ)句的所有命令
那我延伸一個(gè)問(wèn)題:sql注入形成的原因是什么呢?
數(shù)據(jù)庫(kù)的屬于與網(wǎng)站的代碼未嚴(yán)格分離,當(dāng)一個(gè)黑客提交的參數(shù)數(shù)據(jù)未做充分的檢查和防御的話,那么黑客的就會(huì)輸入惡意的sql命令,改變了原有的sql命令的語(yǔ)義,就會(huì)把黑客執(zhí)行的語(yǔ)句帶入到數(shù)據(jù)庫(kù)被執(zhí)行。
現(xiàn)在回答第二個(gè)問(wèn)題:我們常見(jiàn)的注入方式有哪些?
我們常見(jiàn)的提交方式就是GET和POST
首先是GET,get提交方式,比如說(shuō)你要查詢一個(gè)數(shù)據(jù),那么查詢的代碼就會(huì)出現(xiàn)在鏈接當(dāng)中,可以看見(jiàn)我們id=1,1就是我們搜索的內(nèi)容,出現(xiàn)了鏈接當(dāng)中,這種就是get。
第二個(gè)是Post提交方式是看不見(jiàn)的,需要我們利用工具去看見(jiàn),我們要用到hackbar這款瀏覽器插件
可以就可以這樣去提交,在這里我搜索了2,那么顯示的數(shù)據(jù)也就不同,這個(gè)就是數(shù)據(jù)庫(kù)的查詢功能,那么的話,get提交比post的提交更具有危害性。
第二個(gè)是Post提交方式是看不見(jiàn)的,需要我們利用工具去看見(jiàn),我們要用到hackbar這款瀏覽器插件。
以上便是我的回答,希望對(duì)你有幫助。
黑客攻擊常用的代碼是什么?
我仔細(xì)想了一下這個(gè)問(wèn)題,如果講現(xiàn)在黑客攻擊最常用的代碼,哪必須從黑客最流行的攻擊手法來(lái)得出這個(gè)結(jié)論。現(xiàn)在市面上最流行的攻擊手法是什么,自然是SQL Injection了,中文叫數(shù)據(jù)庫(kù)注入。
隨著B(niǎo)/S模式應(yīng)用開(kāi)發(fā)的發(fā)展,使用這種模式編寫(xiě)應(yīng)用程序的程序員也越來(lái)越多。但是由于程序員的水平及經(jīng)驗(yàn)也參差不齊,相當(dāng)大一部分程序員在編寫(xiě)代碼的時(shí)候,沒(méi)有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患。用戶可以提交一段數(shù)據(jù)庫(kù)查詢代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQL Injection,即SQL注入。
如何手工檢測(cè)網(wǎng)站有此漏洞呢?假設(shè)網(wǎng)站的URL是http://url/list.php?id=1,哪么提交簡(jiǎn)單的and 1=1--或是and 1=2來(lái)檢測(cè)。
http://url/list.php?id=1 and 1=1--
http://url/list.php?id=1 and 1=2--
and 在數(shù)據(jù)庫(kù)語(yǔ)法中,邏輯為“和”,1=1永遠(yuǎn)又是真的,所以
http://url/list.php?id=1 and 1=1--會(huì)網(wǎng)站頁(yè)面不變,如果網(wǎng)站有漏洞的話,哪么
http://url/list.php?id=1 and 1=2--頁(yè)面就會(huì)有變化。
市面上所有的注射工具,例如sqlmap,它的error-based、stacked queries、AND/OR time-based blind和UNION query的PAYLOAD等注射判斷基本也是依據(jù)此方法。
現(xiàn)在SQL注入死透了嗎?
可以說(shuō)基本上死透了,現(xiàn)在除非那種笨蛋程序員誰(shuí)還會(huì)用手動(dòng)拼接SQL語(yǔ)句的方式呢?都是框架自動(dòng)生成,而框架層面,基本上杜絕了SQL注入的可能性。
必須要承認(rèn)一點(diǎn),技術(shù)在不斷地發(fā)展。當(dāng)年用C 語(yǔ)言動(dòng)不動(dòng)就忘了釋放指針,內(nèi)存泄漏。于是有了后面Java等一大票帶GC的語(yǔ)言,你放心用,碰到忘了釋放的我?guī)湍阏页鰜?lái)釋放?,F(xiàn)在也是一樣的,各種框架早就替你想好了SQL注入問(wèn)題,它們把類庫(kù)做得越來(lái)越好用,甚至很多類庫(kù)已經(jīng)是傻瓜式調(diào)用,目的就是為了讓程序員們用的爽,徹底根除SQ注入問(wèn)題。
當(dāng)然,社會(huì)工程學(xué)是永遠(yuǎn)也逃避不開(kāi)的問(wèn)題。就算世界上所有類庫(kù)都解決了SQL注入問(wèn)題,也還是避免不了有人用123456做密碼。所以搞滲透的也不要老是糾結(jié)于SQL注入這個(gè)層面,從更高處思考問(wèn)題,才能更好的解決問(wèn)題。