原理:产生sql注入漏洞主要因为没有对接受到的参数进行过滤、验证和处理直接拼接到了sql语句中,然后直接执行该sql语句,这样就会导致恶意用户传入一些精心构造的sql代码,与后台sql语句拼接后形成完整的sql语句执行,达到攻击者的目的。
分类:我们可以把sql注入直接的分为字符型和数字型,主要特点就是在进行sql注入的时候是否需要闭合传参的单引号,不需要闭合说明是数值型,反之就是字符型;还可以将sql注入分为有回显的注入和无回显的注入,无回显的注入又别称为盲注,盲注有三大类,布尔盲注、时间盲注以及报错盲注;根据sql注入各自的特点可以分为联合注入、二次注入、宽字节注入、堆叠注入等,根据http报文中的不同位置可以有cookie注入、referer注入、x-forwarded-for注入等。
绕过:大小写绕过 、编码绕过、注释绕过、关键字/关键函数替换、参数污染、缓存区溢出、特殊符号
##### 2、报错注入用到的函数、原理
函数:updatexml、floor、exp
原理:updatexml()一共有三个参数,第一个是xml内容、第二个参数是update的位置XPATH路径、第三个参数是更新后的内容;这里报错的主要原理是利用第二个参数,当其校验输入的内容是否符合XPATH格式的时候,不符合就报错,我们将第二个参数替换为version()或者database()等等,因为不满足XPATH格式所以会输出错误,输出错误的时候将sql代码(verson()/database()等)执行了。
##### 3、sqlmap用过的tamper
##### 如何防御sql注入
base64编码、url编码、双url编码、宽字节、使用/**/分割sql关键字、替换空格为xx
如何防御sql注入漏洞
1、在代码层面使用过滤函数正则表达式等对传入的参数进行一个过滤、检测、处理,使得传入的恶意数据无法按照预想方式执行
2、预编译sql语句
3、使用waf,安全狗,阿里云盾等waf进行防护
4、经常进行基线检查、漏洞扫描等工作
##### 4、sql写shell条件/sqlmap写shell
条件:
1、sql写shell可以用到两个函数outfile和dumpfile可用(select into outfile不可写入二进制可执行文件,select into dumpfile 可写入二进制可执行文件)
2、关闭安全模式(需要数据库允许导出文件也就是secure_file_priv参数配置为空或者是目录地址,设置为NULL的时3、候不允许导出文件)
4、需要足够的权限
5、需要知道网站的绝对路径
6、GPC关闭可使用单引号
sqlmap --os-shell:
对于mysql数据库来说,–os-shell的本质就是写入两个php文件,其中tmpugvzq.php可以让我们上传文件到网站下,让我们命令执行,并将输出的内容返回sqlmap端,另一个返回课以让我们执行系统命令的命令行;简单的说就是先传小马再传自己的大马。
##### 5、渗透思路
信息收集:
1、获取域名whois信息
2、服务器子域名、旁站、c段查询
3、服务器操作系统版本补丁状况、web中间件类型、版本、数据库类型等
4、服务器开放端口:22 ssh
最低0.47元/天 解锁文章

9792

被折叠的 条评论
为什么被折叠?



