WiiNews新闻系统 SQL注入

刚开始学习代码审计,根据法师的书本和相关资料进行慢慢开始练手,这里了一款WiiNews老版本针对于练手来讲还是比较简单通俗易懂的系统来做审计!

#1 SQL注入

文件:/newsBySort.php

代码10~18行:

	$sort=sqlReplace(trim($_GET[‘id‘]));    
	$sqlStr="select * from wiinews_newssort where newssort_id=$sort";
	$result = mysql_query($sqlStr) or die ("查询失败,请检查SQL语句。编码号:1007");
	$row = mysql_fetch_array($result);
	if ($row){
		$sortName=$row[‘newssort_name‘];
	}else{
		die ("分类不存在。");
	}

  

$sort=sqlReplace(trim($_GET[‘id‘]));

id参数通过$_GET以后给sqlReplace函数处理、trim函数做是处理首尾处的空白字符。

下面跟进sqlReplace函数:

function sqlReplace($str)
{
   $strResult = $str;
   if(!get_magic_quotes_gpc())  //如果gpc没有开
   {
     $strResult = addslashes($strResult);   //编码
   }
   return HTMLEncode($strResult);  //gpc开的话,返回HTMLEncode()
}

$str传输进来判断如果gpc没有开启的话通过php内置函数addslashes()进行处理。如果开启的话则用HTMLEncode来处理。

function HTMLEncode($str){
	if (!empty($str)){
		$str=str_replace("&","&",$str);
		$str=str_replace(">",">",$str);
		$str=str_replace("<","<",$str);
		$str=str_replace(CHR(32)," ",$str);  //空格
		$str=str_replace(CHR(9),"    ",$str);
		$str=str_replace(CHR(9),"    ",$str);
		$str=str_replace(CHR(34),""",$str);  //双引号
		$str=str_replace(CHR(39),"‘",$str);  //单引号
		$str=str_replace(CHR(13),"",$str);
		$str=str_replace(CHR(10),"<br/>",$str);
	}
	return $str;
}

这里只拦截了引号、空格、并没有拦截类似and、select等函数。

通过数据库日志记录可以看到空格等相关的转义带入查询、这里可以用/**/注释一句来绕过SQL注入。

Url:http://127.0.0.1/WiiNews/newsBySort.php?id=1/**/and/**/1=2/**/union/**/select/**/1,version(),3,4,5,6

原文地址:https://www.cnblogs.com/xsr7yer/p/9070934.html

时间: 2024-11-08 17:00:26

WiiNews新闻系统 SQL注入的相关文章

仿5173游戏交易平台系统SQL注入(可直接脱裤)+Getshell

最近没事登登好几年前玩过的游戏看看,发现有人喊高价收号,这一看就是骗子,这等骗子还想骗我?我就来看看这逗逼是怎么骗人的,结果发现这人给了一个说是 5173平台交易的网站,叫我直接把号的信息填上去然后填好了之后就去他就会去购买,然后仔细看了一下平台,获取了源代码后看了一下~呵呵,漏洞还是有不 少的~ 仿5173网游交易平台游戏交易平台存在注入与getshell漏洞,可直接拖掉玩家数据~     发乌云上乌云不收,所以没事就发zone里给大家玩玩.其实这系统还是蛮多漏洞的,我最痛恨骗子了,大家能搞几

SEED实验系列:Collabtive系统SQL注入实验

本课程原文链接为:https://www.shiyanlou.com/courses/291.实验楼已经为此课程的实践提供了在线实验环境,想要尝试体验的,可以直接前往实验楼进行实践操作. 你能够喜欢我们的课程,让我们感到异常高兴,我们也非常欢迎你将本课程分享给更多的人,我们唯一的要求就是请保留我们的课程原文链接. 一.实验描述 SQL注入漏洞的代码注入技术,利用web应用程序和数据库服务器之间的接口.通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意

利用sqlmapapi打造自动化SQL注入工具

友链:http://www.freebuf.com/sectool/74445.html 0×01 前言 各位看官看到标题吐槽帝就开始了:已经有了各种各样的注入工具,为什么还要手工打造一个? 事实上,做为一名苦逼乙方测试工程师以及漏洞盒子屌丝白帽子 ,在疲于应对各种死缠滥打的甲方以及成堆的web测试需求时,我经常遇到以下场景: (1)有大批量的网站需要检测的场景 乙方工程师工作辛苦劳累从来都不抱怨,有项目一定都是最能抗的,向无数奋斗在一线的乙方工程师致敬! (2)系统内部业务复杂可能会存在众多测

Web安全之SQL注入攻击技巧与防范

在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Webshell)通过脚本语言的漏洞上传到服务器上,从而获得服务器权限.在Web发展初期,随着动态脚本语言的发展和普及,以及早期工程师对安全问题认知不足导致很多”安全血案”的发生,至今仍然遗留下许多历史问题,比如PHP语言至今仍然无法从语言本身杜绝「文件包含漏洞」(参见这里),只能依靠工程师良好的代码规范和安全意识. 伴随着Web2.0.社交网络.微博等一系列新型互联网产品的兴起,基于Web环境的互联网应

zabbix再爆高危SQL注入漏洞,可获系统权限

漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限. 官方网站 http://www.zabbix.com 影响程度 攻击成本:低 危害程度:高 是否登陆:不需要 影响范围:2.2.x, 3.0.0-3.0.3.(其他版本未经测试) 漏洞测试 在您的zabbix的地址后面加上如

zabbix 爆高危 SQL 注入漏洞,可获系统权限(profileIdx 2 参数)

漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限. 影响程度 攻击成本:低 危害程度:高 是否登陆:不需要 影响范围:2.2.x, 3.0.0-3.0.3.(其他版本未经测试) 漏洞测试 在zabbix地址后面添加这串url jsrpc.php?type=9&method=s

session标签实例:简单的系统登录代码(巧妙地避开SQL注入攻击)

提交用户名和密码到服务器,以用户为条件查询用户记录,然后判断用户是不是已经注册,若注册就判断密码是否正确,正确则成功登录,在会话中记录用户的相关信息.查询中只以用户名为条件,让数据库从单列索引中快速找出匹配的用户记录,速度远快于同时使用用户名和密码作为条件的查询,而且还巧妙地避开了SQL注入攻击. 登录页 表单代码 <FORM name=form1 action="" method=post onsubmit="return checkval();">

浅入浅出SQL注入

已经开始了学习牛腩新闻发布系统,在讲后台代码的时候讲了一些重构SQLHelper的知识,存储过程和触发器等,这些以前都是接触过的.而SQL注入是以前没有注意过的,所以停下来总结学习一下SQL注入. 首先什么是SQL注入呢? 实战篇~~~~~~~~~~ SQL注入概念 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到

Web安全篇之SQL注入攻击

在网上找了一篇关于sql注入的解释文章,还有很多技术,走马观花吧 文章来源:http://www.2cto.com/article/201310/250877.html ps:直接copy,格式有点问题~ 大家早上好!今天由我给大家带来<web安全之SQL注入篇>系列晨讲,首先对课程进行简单介绍,SQL注入篇一共分为三讲:       第一讲:"纸上谈兵:我们需要在本地架设注入环境,构造注入语句,了解注入原理.":       第二讲:"实战演练:我们要在互联网上