PHP代码审计系列(三)
创始人
2024-03-27 00:21:39

PHP代码审计系列(三)

本系列将收集多个PHP代码安全审计项目从易到难,并加入个人详细的源码解读。此系列将进行持续更新。

sql闭合绕过

源码如下

$conn = mysql_connect("*******", "****", "****");mysql_select_db("****") or die("Could not select database");if ($conn->connect_error) {die("Connection failed: " . mysql_error($conn));
} 
$user = $_POST[user];
$pass = md5($_POST[pass]);//select user from php where (user='admin')#//exp:admin')#$sql = "select user from php where (user='$user') and (pw='$pass')";
$query = mysql_query($sql);
if (!$query) {printf("Error: %s\n", mysql_error($conn));exit();
}
$row = mysql_fetch_array($query, MYSQL_ASSOC);
//echo $row["pw"];if($row['user']=="admin") {echo "

Logged in! Key: ***********

";}if($row['user'] != "admin") {echo("

You are not admin!

");} }?>

通读代码出现漏洞的是这一段sql存在注入,通过’)#闭合可以绕过密码的校验

$sql = "select user from php where (user='$user') and (pw='$pass')"

payload:

user=admin')#&pass=1

在这里插入图片描述

X-Forwarded-For绕过指定IP地址

源码如下


if(!empty($_SERVER["HTTP_CLIENT_IP"]))$cip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"]))$cip = $_SERVER["REMOTE_ADDR"];
else$cip = "0.0.0.0";
return $cip;
}$GetIPs = GetIP();
if ($GetIPs=="1.1.1.1"){
echo "Great! Key is *********";
}
else{
echo "错误!你的IP不在访问列表之内!";
}
?>

通读代码发现只要GetIP()方法返回的IP为1.1.1.1就可以获得flag,这个方法是根据HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR、REMOTE_ADDR请求头来校验ip的

我用了burp更改请求头,推荐个burp插件fakeip一键生成多种请求头进行绕过

在这里插入图片描述

md5加密相等绕过

源码如下


if ($a != 'QNKCDZO' && $md51 == $md52) {echo "nctf{*****************}";
} else {echo "false!!!";
}}
else{echo "please input a";}?>

通读代码需要绕过以下条件,我们需要找到一个不等于QNKCDZO的值MD5加密后相等

$a != 'QNKCDZO' && $md51 == $md52

==在进行比较的时候会进行数据转换,字符串与数字进行比较的时候字符串开头数字会被转换为数值进行比较例如

echo '123tpaer' == 123;

结果是1

QNKCDZO经过MD5加密后为0e开头

字符串e0XXX会转换为0,我们只需要找到MD5加密后开头为0e的字符串即可百度有很多

payload:

http://localhost/phpbugs/13.php?a=s155964671a

在这里插入图片描述

intval函数四舍五入

initval函数四舍五入

源码如下

mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);mysql_select_db(SAE_MYSQL_DB);$id = intval($_GET[id]);$query = @mysql_fetch_array(mysql_query("select content from ctf2 where id='$id'"));if ($_GET[id]==1024) {echo "

no! try again

";}else{echo($query[content]);} }?>

通读代码主要需要绕过以下条件

$_GET[id]==1024

在查询sql之前使用了intval函数

利用intval的四舍五入特性绕过

echo intval('1024.1');
//结果为1024

strpos数组绕过NULL与ereg正则%00截断

源码如下

if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)echo '必须输入数字才行';else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)   die('Flag: '.$flag);elseecho '骚年,继续努力吧啊~';}?>

通读代码逻辑如下:

首先判断GET请求中的nctf字段,对该字段进行校验是否输入的都是数字不是则结束脚本,使用strops判断字符串#biubiubiu中是否存在nctf的字段如果存在输出flag

需要绕过以下条件

strpos ($_GET['nctf'], '#biubiubiu') !== FALSE

可以通过报错使strpos返回NULL,满足条件NULL!== FALSE

在这里插入图片描述

也可以利用erge的截断漏洞,绕过以下条件

@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE

在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...