- 浏览: 799434 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xieye:
jetty插件有好几个版本,1.6,1.7,1.8
我选的是用 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
还有,
注:第2部分时,需要先安装jetty,我自己在安装过程 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
说明一下:实际使用中,导入时我并没有错误。2、我把eclips ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
其实还是有一些先决条件的。1是外部环境,2是进步是阶段性的(意 ...
(转载文章)如何愉悦起来:一位精神治疗师的见解 -
mandy_yanzi:
我都已经饿7天了坚持为了我的衣衣
身体健康的问题
php基础知识-sql注入
示例代码下载页http://xieye.iteye.com/blog/1336095(在附件)
sql注入是指:黑客利用编写不严谨的php程序中的漏洞,进行数据窃取或数据破坏的行为。
如果没有test库,首先建立test数据库。
然后,建一个用户表
use test;
-- 创建用户表
CREATE TABLE member (
id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
username varchar(255) NOT NULL DEFAULT '' COMMENT '用户名',
password varchar(255) NOT NULL DEFAULT '' COMMENT '密码',
primary KEY (id )
)default charset=utf8 COMMENT='会员表';
-- 往会员表插入两条数据。
insert into member(username,password)values('name1', 'name1');
insert into member(username,password)values('name2', 'name2');
-- 检查表
show tables;
可以写个简单的程序来测试数据库的正确性。
代码说明:
文件夹是sql_injection
3.php是列出所有用户,同时也是一个公共文件,被别的文件调用。
4.php是测试sql注入,程序编写错误的例子
5.php是测试sql注入,程序防止注入、编写正确的例子。
演示:
首先列出所有用户的程序:
http://localhost/command/peixun/sql_injection/3.php
一个错误的导致sql注入的程序(首先确保magic_quotes_gpc = 0)
http://localhost/command/peixun/sql_injection/4.php
首先在用户名输入admin,密码输入1,发现是正确的。
再次注册,在用户名输入
5', 'f'); delete from member; -- \
密码输入1
点击注册。
发现提示一堆致命错误,这时开新窗口,重新输入
http://localhost/command/peixun/sql_injection/3.php
发现刚才注册的用户数据没有了,说明被注入了delete语句。
光防止delete是不够的,重要的是确保每个字符串里面都被转义过,很多php框架都实现了此功能,当然必须要调用才可以。
一个正确的的防止sql注入的程序
http://localhost/command/peixun/sql_injection/5.php
看代码可知,代码使用了zend的防止注入的功能,不会遭受注入了,在zend框架中,更多防注入使用的是?参数,请自行阅读zend文档。
另外,其实把php.ini中的magic_quotes_gpc打开也可以防注入,但是付作用太多,所以一般不用。
代码可下载。
3.php
4.php
5.php
示例代码下载页http://xieye.iteye.com/blog/1336095(在附件)
sql注入是指:黑客利用编写不严谨的php程序中的漏洞,进行数据窃取或数据破坏的行为。
如果没有test库,首先建立test数据库。
然后,建一个用户表
use test;
-- 创建用户表
CREATE TABLE member (
id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
username varchar(255) NOT NULL DEFAULT '' COMMENT '用户名',
password varchar(255) NOT NULL DEFAULT '' COMMENT '密码',
primary KEY (id )
)default charset=utf8 COMMENT='会员表';
-- 往会员表插入两条数据。
insert into member(username,password)values('name1', 'name1');
insert into member(username,password)values('name2', 'name2');
-- 检查表
show tables;
可以写个简单的程序来测试数据库的正确性。
代码说明:
文件夹是sql_injection
3.php是列出所有用户,同时也是一个公共文件,被别的文件调用。
4.php是测试sql注入,程序编写错误的例子
5.php是测试sql注入,程序防止注入、编写正确的例子。
演示:
首先列出所有用户的程序:
http://localhost/command/peixun/sql_injection/3.php
一个错误的导致sql注入的程序(首先确保magic_quotes_gpc = 0)
http://localhost/command/peixun/sql_injection/4.php
首先在用户名输入admin,密码输入1,发现是正确的。
再次注册,在用户名输入
5', 'f'); delete from member; -- \
密码输入1
点击注册。
发现提示一堆致命错误,这时开新窗口,重新输入
http://localhost/command/peixun/sql_injection/3.php
发现刚才注册的用户数据没有了,说明被注入了delete语句。
光防止delete是不够的,重要的是确保每个字符串里面都被转义过,很多php框架都实现了此功能,当然必须要调用才可以。
一个正确的的防止sql注入的程序
http://localhost/command/peixun/sql_injection/5.php
看代码可知,代码使用了zend的防止注入的功能,不会遭受注入了,在zend框架中,更多防注入使用的是?参数,请自行阅读zend文档。
另外,其实把php.ini中的magic_quotes_gpc打开也可以防注入,但是付作用太多,所以一般不用。
代码可下载。
3.php
<?php //测试sql注入的公共文件 require_once('../Public/CommandLine.php'); $db = Sys::getdb(); $sql ="select * from test.member"; $result = $db->fetchAll($sql); $html =" <h2>当前所有用户的列表</h2> <ul>"; foreach ($result as $value) { $html .= "<li>{$value['username']}</li>"; } $html .= '</ul>'; $html .= "<br /><a href=\"4.php\">注册用户</a>"; echo $html;
4.php
<?php //测试sql注入:错误的例子 require_once('../Public/CommandLine.php'); $isget = ($_SERVER['REQUEST_METHOD'] == 'GET') ? 1 : 0; if ($isget) { $html = <<<longs <html> <body> <h3>注册用户页面</h3> <form method="post"> 请输入用户名:<input type="text" name="username" value=''> 请输入密码: <input type="text" name="password" value=''> <input type="submit" value="注册"> </form> </body> </html> longs; echo $html; } else { //危险的例子,会导致sql注入 $db = Sys::getdb(); $sql = "insert into member(username, password)values('" . $_POST['username'] . "', '" . md5($_POST['password']) . "')"; echo $sql; $db->query($sql); } //无论如何,最后显示所有的用户 include('3.php');
5.php
<?php //测试sql注入,正确的例子 require_once('../Public/CommandLine.php'); $isget = ($_SERVER['REQUEST_METHOD'] == 'GET') ? 1 : 0; if ($isget) { $html = <<<longs <html> <body> <h3>注册用户页面(修改版)</h3> <form method="post"> 请输入用户名:<input type="text" name="username" value=''> 请输入密码: <input type="text" name="password" value=''> <input type="submit" value="注册"> </form> </body> </html> longs; echo $html; } else { //正确的例子, 不会导致sql注入 $db = Sys::getdb(); $sql = "insert into test.member(username, password)values('" . $_POST['username'] . "', '" . md5($_POST['password']) . "')"; $db->insert("test.member", array( 'username'=> $_POST['username'] , 'password' => $_POST['password'], )); // echo $_POST['name1']; } //无论如何,最后显示所有的用户 include('3.php');
发表评论
-
召唤神龙 - 安装 centos 8, php 8, mysql 8, laravel 8 的整套 php 运行环境
2020-11-27 16:26 541本文编写时间:2020-11-27 传说集齐龙珠可以召唤神 ... -
centos8 使用阿里镜像快速安装php7.4套件
2020-11-15 00:48 633centos8 使用阿里镜像快速安装php7.4套件 本文只 ... -
centos7 使用阿里镜像快速安装php7.4套件
2020-11-15 00:32 969本文只考虑centos7 今日 2020-11-16 rem ... -
composer常用命令
2020-11-05 14:46 900列出当前全局配置 composer config -l -g ... -
期待centos8+php8 + mysql8 + laravel8,8888
2020-10-29 19:24 362期待centos8+php8 + mysql8 目前主要使用 ... -
ubuntu 安装 php7.4以及各类插件
2020-10-24 13:20 880ubuntu 安装 php7.4以及各类插件 安装系统 最近 ... -
宝塔定义站点
2020-02-24 10:41 2宝塔定义站点。 1111111111111111111111 ... -
让php-fpm以root账号运行
2020-02-19 21:41 665一般来说,我们没有这种需求,但是当需要时, 可以让php-fp ... -
将代码部署到coding.net
2020-01-10 14:20 531coding.net 是一个git仓库,有免费有收费。 首先 ... -
php部署工具deployer技巧 - vendor目录创建
2020-01-06 12:06 787deployer是个好东西,可是每次都composer ,其实 ... -
自定义redis多个实例
2020-01-04 01:17 567假如多个项目部署到同一台服务器,有时会被redis的各项目前缀 ... -
推荐使用php的部署工具 deployer
2020-01-03 16:48 790php部署代码可以使用 https://deployer.or ... -
使用composer 类库 cachetool 清除opcache 的缓存
2020-01-03 16:38 849php的生产服务器上,需要把opche打开。 但有时,会被缓 ... -
laravel容器学习体会
2019-12-31 15:11 557根据文档与实测结果 假设我在app下建一个Services目 ... -
phalcon 自定义超强日志类
2019-12-18 10:00 749phalcon自带的日志文件类,有两个麻烦之处。 1、路径不能 ... -
自定义后台的使用
2019-12-18 05:22 350如果自己写后台,保存用户的表单请求值 所有的情况如下: 1 ... -
phalcon 自定义事件使用的多种方式
2019-12-16 20:43 701方法1:官方文档的方式。 这是控制器: public ... -
phalcon对控制器返回值的使用以输出json
2019-12-16 19:17 720在phalcon里,控制器的Action的方法的返回值没啥用。 ... -
phalcon数据库DB使用实例
2019-12-12 17:12 564整理了一下phalcon的db使用,写了个demo。 ... -
php-redis5.0降级成php-redis4.3
2019-08-22 00:01 825最新版本的php的redis插件,版本是5.0 但是可能会有 ...
相关推荐
CTF-第一周:Linux系统安全、Windows系统安全、HTTP协议分析、PHP基础知识 CTF-第二周:CTF杂项 CTF-第三周:信息泄露、sql注入、文件上传、常见CTF web题型及解析技巧 CTF-第四周:重点漏洞分析、金融安全案例剖析...
课时4:Linux基础知识21'37 课时5:Redis未授权访问漏洞利用与防御16'17 课时6:Redis未授权添加ssh密钥f17'04 第5章 第五章 课时1:XXE-XML基础必备24'47 课时2:XXEXML盲注利用技巧18'22 第6章 第六章 课时1...
第13章 关系型数据库的基础知识 204 13.1 关系型数据库与关系型数据库系统的 13.1 介绍 204 13.2 关系型数据库系统的结构与运行过程 205 13.2.1 关系型数据库系统的层次结构 205 13.2.2 关系型数据库系统的运行过程 ...
介绍关于PHP安全编程的相关知识: 包括SQL注入、表单与URL安全、验证与授权、会话与cookie、文件及命令等~
2.SQL注入 00:42:41 3.XSS 01:05:58 4.CSRF 00:21:27 5.暴力破解 00:32:11 6.文件上传 00:22:40 7.逻辑漏洞 00:07:47 【六、漏洞扫描工具】 1.NMAP 00:35:40 2.SQLMAP 00:24:44 3.AWVS 00:16:05 4.Xray 00:20:08...
全书分4 篇共16 章,除介绍Web 安全的基础知识外,还介绍了Web 应用程序中最常见的安全漏洞、开源程序的攻击流程与防御,并着重分析了“拖库”事件时黑客所使用的攻击手段。此外,还介绍了渗透测试工程师其他的一些...
4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用...
4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式...
9)、深入了解各类SQL注入漏洞的原理、攻击手段及加固措施 10)、掌握上传漏洞、命令执行漏洞、XSS漏洞等常见Web漏洞的利用方式及技巧 11)、掌握各类提权方法 12)、掌握各类第三方插件/程度的漏洞利用方法 考试及...
4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用...
基础的渗透测试案例 分析扫描报告得到该网站存在SQL注入漏洞。 基础的渗透测试案例 使用SQLMAP获取到网站后台登陆账号密码。 基础的渗透测试案例 使用SQLMAP获取到网站后台登陆账号密码。 基础的渗透测试案例 关于...
MiscSecNotes 此系列文章是本人关于学习 Web/...SQL 注入 MYSQL注入 sqlmap tips sqlmap 进阶 Flash安全 Flash xss Flash csrf PHP安全 php filter php open_basedir php 安全编码 php 弱类型问题 php 高级代码审计 php
9)、深入了解各类SQL注入漏洞的原理、攻击手段及加固措施 10)、掌握上传漏洞、命令执行漏洞、*SS漏洞等常见Web漏洞的利用方式及技巧 11)、掌握各类提权方法 12)、掌握各类第三方插件/程度的漏洞利用方法 考试及...
本书中的秘诀所覆盖的基础知识包括了从观察客户端和服务器之间的消息到使用脚本完成登录并执行Web应用功能的多阶段测试。在本书的最后,你将能够建立精确定位到Ajax函数的测试,以及适用于常见怀疑对象(跨站式脚本...
由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的...
ADO.Net(行集、数据集、类型化数据集、SQLHelper、SQL注入漏洞防范、数据绑定)。 3、三层架构MIS项目(5天) 查看项目演示 功能点 本项目基于流行的三层架构(DAL+BLL+UI)。 主要功能点:高安全性的用户管理体系...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...