Lab: SQL injection attack, querying the database type and version on MySQL and Microsoft
首先测试注入点,使用category=Pets' and '1=2--'发现为字符型
使用联合查询进行查询数据类型
这里有一个关于注释的细节如下图,可以看到oracle和MySQL的注释差不多一样,但是细心看会发现MySQL的--后面还有一个空格,刚才就踩坑了就只输入了--导致一直出错,后面改成--+就好了,因为+就代表空格(在 URL 中,+通常代表空格。这是因为早期的 HTTP 表单提交中,空格被转换为+号以便传输。而根据 W3C 标准规定,当 Content-Type 为 application/x-www-form-urlencoded 时,URL 中查询参数名和参数值中空格要用加号+替代,所以几乎所有使用该规范的浏览器在表单提交后,URL 查询参数中空格都会被编成加号+。但在另一份规范 RFC2396 中,定义 URI 里,URI 里的保留字符都需转义成%HH 格式(Section 3.4 Query Component),因此空格会被编码成%20,加号+本身也作为保留字而被编成%2B,对于某些遵循 RFC 2396 标准的应用来说,它可能不接受查询字符串中出现加号+,认为它是非法字符。所以一个安全的举措是 URL 中统一使用%20来编码空格字符。 )
最后查询数据库版本
标签:空格,URL,MySQL,查询,---,--,bp,加号,SQL From: https://blog.csdn.net/m0_72471814/article/details/145013657