准备把 PHP5 的代码升级带 PHP7 ,其他的代码基本修改完成,但是下面这段代码数组存取就是不显示内容, 大家帮忙看看指出错误谢谢。。。
<?php
$echo=1;
$search="";
if(isset($_POST['search'])){$search="and url like '%{$_POST['search']}%'";
}
$query=mysqli_query($conn,"select count(*) as row from sqlmap where hash!='' {$search} and userhash='{$hash}' order by pr desc");
while($row=mysqli_fetch_array($query)){
if($row['status']=='running') {$class='active';}
else{$class='success';}
preg_match_all('/ => \'(.*)\n\'/',$row['data'],$match);
$match=$match[1];
$last=@$match[count($match)-1];
$key=$row['key'];
$stat=$row['status'];
$url=$row['url'];
$pr=$row['pr'];
$dbtype=$row['dbtype'];
$node=$row['apiserver'];
if(stripos($last,"back-end") and stripos($last,"--dbms")==false){
$class='danger';
$stat='Inject';
mysqli_query($conn,"update sqlmap set status='{$stat}' where `key`='{$key}' and userhash='{$hash}'");
}
preg_match_all('/ => \'(.*)\n\'/',$row['data'],$match);
$data='';
foreach($match[1] as $m){
$m=stripcslashes($m);
$data.=$m."\n";
}
if(@$_GET['vul']==1 and $stat!='Inject'){
//echo $stat."<br>";
$echo=0;
}else{$echo=1;}
if($echo){
?>
<tr class="<?php echo $class?>">
<td>
<?php echo $key?>
<?php echo test?>
<?php echo $row?>
<?php print_r ($key);?>
</td>
<td>
<?php echo substr($url,0,60)?>..
</td>
<td>
<?php echo $stat;?>
</td>
<td>
<?php echo $node;?>
</td>
1
lynnworld 2016-07-15 17:09:16 +08:00
把 @ 错误抑制都去掉,看看什么报错
|
2
chaegumi 2016-07-15 17:14:01 +08:00
写的很糟糕的代码
|
3
Felldeadbird 2016-07-15 17:16:05 +08:00
and url like '%{$_POST['search']}%'
好大一个注入。。 |
4
BOYPT 2016-07-15 17:25:20 +08:00
(看出错误!
|
5
Smirnoff OP @lynnworld
@chaegumi @Felldeadbird $query=mysqli_query($conn,"select count(*) as row from sqlmap where hash!='' {$search} and userhash='{$hash}' order by pr desc"); 代码不是我写的 貌似是这段写的出现了问题 |
6
z5864703 2016-07-15 17:35:53 +08:00
debug 啊,排版这样的代码看出错误。。。
|
7
killall 2016-07-15 17:37:27 +08:00
我勒个擦!!!!恕知识浅薄,看第一眼 $echo 这变量就不敢往下看了!
|
8
hoythan 2016-07-15 17:44:20 +08:00
你这代码我都看懵逼了.
|
9
saeed 2016-07-15 17:48:59 +08:00
mysql_query(query,connection)
|
10
saeed 2016-07-15 17:51:38 +08:00
看错了!
|
11
helone 2016-07-15 18:10:31 +08:00
$last = @$match[count($match) - 1];
参考 http://php.net/manual/zh/migration70.incompatible.php#migration70.incompatible.variable-handling |
12
aprikyblue 2016-07-15 18:27:59 +08:00 via Android
这什么鬼玩意。。
|
13
initialdp 2016-07-15 18:28:23 +08:00
php7 默认把这个 mysql 接口库移除了吧?话说 PDO 很多年前就已经出了,这年头居然还在用拼接。。。
|
14
darluc 2016-07-15 18:29:35 +08:00
可以参考一下这个噢: https://log.zvz.im/2015/10/24/PHP7-1/
"对于不一致性的修复" 这个部分有说明 "表达式求值上严重的不一致问题" |
15
500miles 2016-07-15 18:31:00 +08:00
第一行就炸裂! boom boom boom
|
16
genffy 2016-07-15 19:48:44 +08:00
那些说 PHP 是世界上最好的语言的 programer 你们幸苦了。
|
17
lhbc 2016-07-15 20:02:02 +08:00 via Android
那么问题来了,入侵楼主网站需要多长时间?
|
18
cxbig 2016-07-15 20:22:02 +08:00
惨不忍睹。。。重写吧。。。
|
19
cevincheung 2016-07-15 20:28:11 +08:00
不吐槽了。
mysqli_fetch_array 第二个参数默认是 MYSQLI_BOTH ,改成 MYSQLI_ASSOC 。 |
20
notgod 2016-07-15 21:10:43 +08:00 1
只能帮你到这里来少年
简单修复过 无测试 https://blog.cnlabs.net/4721.html 很优雅的语言 怎么被写成这样 sql 那块 尽量使用 pdo 实在不习惯 使用 sql 的封装也可以的 比如 adodb 封装好的 |
21
Asimov 2016-07-15 21:22:13 +08:00
block 楼主了。
|
22
Volio 2016-07-15 22:04:23 +08:00
看到$echo=1 ...
看不下去了 |
23
hljjhb 2016-07-15 22:14:22 +08:00
黑人问号???
|
25
mahone3297 2016-07-15 22:43:15 +08:00
虽然代码写的确实很糟。。。
但是,大部分公司,特别是小公司,代码可能就是这样的吧。。。 大家的代码都写的那么赞的?可能是 v2 上的人技能比较好,所以所处的公司也比较好,代码质量比较高。 |
26
explon 2016-07-16 00:01:45 +08:00 via iPhone
这种狗屎代码你还不重构?
|
27
smallpath 2016-07-16 00:17:30 +08:00
太惨了
|
28
caola 2016-07-16 01:39:35 +08:00
这代码,我也看不下去了!
|
29
gzelvis 2016-07-16 01:44:13 +08:00
哈哈,这贴可以用来给将来公司挖 PHP 大神
|
30
yxzblue 2016-07-16 01:56:29 +08:00
我以为是科普贴
|
31
pubby 2016-07-16 02:00:19 +08:00
如果是十年前的代码我就不说啥了
不过,这么大一个漏洞,数据库里估计都有脏东西了 |
32
thanksir 2016-07-16 02:26:31 +08:00
这代码完全看不下去
|
33
dxwwym 2016-07-16 07:33:22 +08:00 via iPhone
sprintf 整合好字符串再一下打印出能好一些吧?这样一个劲的 echo ……
|
34
wzxjohn 2016-07-16 08:33:33 +08:00 via iPhone
作为一个业务选手我都看不下去了。。。这就是没有代码安全意识的典范。。。
|
37
Smirnoff OP @notgod 这是一个 git 的开源项目,我最近想移至到 PHP7 上运行,本身不是 phper ,感谢你的帮助
|
38
zchzch1014 2016-07-16 12:46:53 +08:00
@notgod 看了下你博客的在线工具好像都用不了了
|
40
Smirnoff OP @ragnaroks 一个 sqlmapAPI 的项目, webserver 主要是代理和查看数据用,不在外网用,登录无验证,细节不在代码质量和 SQL 注入上,主要是我在搭建 DOCKER images ,想尝试吧 web 部分移植到 PHP7 , PHP5 是正常的
|
41
aristotll 2016-07-16 15:33:30 +08:00
最好语言躺枪...
|
42
summersky92 2016-07-16 22:57:03 +08:00
这个。。。 xdebug 一行行走也能找到了吧。。。。
|
43
ychongsaytc 2016-07-17 04:37:53 +08:00
久未见惨状,忽然感觉有点亲切
|