• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Ay's Blog@CNSSUESTC

            初級PHP注入筆記--by __ay


            首先介紹下SQL的select的語法??這個是注入中非常非常重要的語法,起碼PHP注入中的50%左右都是通過這個動作完成的

            先說說語法
            select [字段名] from [表名] where [限制條件]

            看不明白?呵呵??拿個例子說話就知道了。

            假設(shè)我們1個數(shù)據(jù)庫里面有個表,表名是user??表里面有2個字段,1個是psw 一個是username
            那么? ? select username from user??返回的結(jié)果是這個表里面的所有用戶名
            select psw from user??返回的結(jié)果是這個表里面的所有密碼,
            那么你想得到某個用戶名的密碼的話如下語句可以幫你實現(xiàn)
            select psw from user where username='你想要的用戶名'

            OK 講解完畢,那么我們來講講一個典型的例子,萬能密碼不知道大家聽說過沒有,我們來看看他是怎么實現(xiàn)的

            $query="select * from user where username='$username' and psw='$psw' and id=1" ;

            這個是一個PHP典型的用戶驗證語句
            我們輸入的??用戶名會被送入到username 這個變量中,而密碼會被送入到psw這個變量中。
            那么我們假設(shè)現(xiàn)在手頭沒有用戶名密碼,但是我們又想進(jìn)去,那怎么辦呢?
            我們現(xiàn)來觀察下這個語句,這個是一個sql語句,也即是說它會被送到數(shù)據(jù)庫里面執(zhí)行,那么我們只要通過某種方法使得在不用用戶名和密碼的情況下,使這個語句為真就可以了。歷史證明這么想是可行的,看不明白?看例子。
            比如我們輸入的用戶名密碼如下,

            用戶名??'or '1'='1' #
            密碼??隨便填

            注:#是sql語句里面的注釋符

            那么我們的sql語句會變成這樣:

            $query="select * from user where username=''or '1'='1' #‘ and psw='隨便寫' and id=1" ;


            看到?jīng)]有?紅色標(biāo)注的是我們輸入的用戶名 紫色標(biāo)注的是被注釋掉的東西
            我們來分析下這個句子,’1‘=’1‘這是永遠(yuǎn)成立的??那么不管前面的username對不對這個邏輯判斷永遠(yuǎn)都是真的,而后面驗證密碼的那些東西都被 注釋掉了,也就是說這樣自我們的SQL語句是有返回的數(shù)據(jù)的,而且一般管理員的信息都是在user表中的第一個,也就是說這個時候$query這個變量中 就儲存了管理員的用戶信息,下面的程序一看到是管理員的信息,那么就會自動跳轉(zhuǎn)到管理員的用戶界面過去了。

            也就是說,我們達(dá)到了不用管理員帳戶密碼登入了管理員的后臺界面~!呵呵是不是很神奇呢?

            那么再來一個例子

            如果PHP中有個語句是這樣的

            $query="select tittle,content from user where id=".$id ;


            假設(shè)我們可以改$id這個變量??而且我們知道表user里面存放著管理員密碼,那么這個時候我們也可以把管理員帳號和密碼弄到手

            不信?

            我們現(xiàn)來看看union這個語法??這個是??連接2個select用的語法,這樣的話可以返回2個select的信息

            比如

            select * from user union select * from topic
            (不知道對不對??懶得查了??大概就這樣)
            那么這個語句的結(jié)果是返回2個表里面的所有字段信息

            注:*是統(tǒng)配符??也就是說*表示所有??select * from user 就是說把user表里面的內(nèi)容全部返回過來

            那么我們輸入的變量$id的信息可以是這樣

            2 and 1=2 union select psw from user where username='管理員帳號'

            那么密碼就可以暴出來了??但是紅色標(biāo)注的那個地方的psw那里必須注意,比如你前面的select是搜出3個字段的信息,那么你后面的select也必須得是3個字段的信息

            比如
            select tittle,content from user where id=".$id ;這個語句,我們填充后的語句必須是

            select tittle,content from user where id=2 and 1=2 union select 1,psw from user where username='管理員帳號'

            這樣,前面的select返回的是2個字段??我們后面的select必須返回2個字段,如果字段數(shù)不夠就用1填充,就向上面的例子一樣

            之所以要1=2是應(yīng)為我們必須要讓前面的信息不能顯示,我們后面select語句的信息才能顯示出來,如果要and后面是1=1的話前面的select語句生效,就不會顯示我們后面的select語句的內(nèi)容了??呵呵

            posted on 2008-12-07 16:12 __ay 閱讀(1250) 評論(2)  編輯 收藏 引用 所屬分類: Security

            Feedback

            # re: 初級PHP注入筆記--by __ay 2008-12-08 10:34 zuhd

            能讓你這么容易注入的估計都是沒做過濾的。。。。  回復(fù)  更多評論   

            # re: 初級PHP注入筆記--by __ay 2008-12-09 14:24 __ay

            初級注入... 我研究的也不是很深~
            以前很早寫的一篇學(xué)習(xí)筆記,沒地方放,放這來曬曬~獻(xiàn)丑了~~呵呵  回復(fù)  更多評論   


            国产综合久久久久久鬼色| 武侠古典久久婷婷狼人伊人| 亚洲精品午夜国产va久久| 久久人人爽人人爽人人片AV麻豆 | 久久r热这里有精品视频| 2020最新久久久视精品爱| 久久久精品国产Sm最大网站| 日韩久久久久中文字幕人妻| 久久久无码人妻精品无码| 国产精品免费久久久久久久久 | 性欧美丰满熟妇XXXX性久久久| 久久久久久亚洲精品成人| 精品国产一区二区三区久久蜜臀| 亚洲另类欧美综合久久图片区| 久久综合给合久久国产免费 | 少妇无套内谢久久久久| 国产麻豆精品久久一二三| 性高湖久久久久久久久AAAAA| 精品综合久久久久久888蜜芽| 精品人妻伦一二三区久久| 无码国产69精品久久久久网站| 久久精品无码一区二区三区日韩| 久久婷婷国产综合精品| 久久精品桃花综合| 欧美精品丝袜久久久中文字幕| 99久久这里只有精品| 一本色道久久HEZYO无码| 2021国内久久精品| 日本久久中文字幕| 日韩影院久久| 午夜精品久久久久久| 性做久久久久久免费观看| 精品熟女少妇aⅴ免费久久| 精品99久久aaa一级毛片| 亚洲国产精品婷婷久久| 色偷偷888欧美精品久久久| 久久精品国产99国产精品澳门| 国产精品久久久久天天影视| 99精品国产在热久久无毒不卡 | 精品伊人久久久| 欧美日韩精品久久久免费观看|