- 程序有所改变。发帖如还有问题请报告
- 【征集】西西河的经济学,及清流措施,需要主动参与者,『稷下学宫』新认证方式,24年网站打算和努力目标
主题:【讨论】从凤凰网的一个BUG看网站安全 -- 华恩
下面是凤凰网出现BUG后显示的一条SQL语句。
分析来看,应该是一条取留言评论的语句。
rb_spacecomments,rb_spacecomments_archive 为表名。
itemid可能是某个ID。'2753599' 表明itemid字段很可能是7位字符。如果是博文ID,则全站博文只有1000万个似乎不能满足需求。也可能表明是全站只允许1000万个主贴。其他则由评论的方式出现。
pid应该也是某种ID。曾经做过东芝的一个电力项目,其中也有PID字段一说,在其中表示轴受温度,时间瞬间受力等。这里这个PID似乎更像是表示种类的ID,很可能是主贴所发版的ID。类型应该为字符型,大小1或2。
audit中文意思为审核,检查。鉴于凤凰网有博客审核一说。0,2,3应该是表明经过了审核的3种类型。而1则很可能是表示审核不通过的类型。该字段估计为数字,大小1。
该语句应该是来抽取某个博文的评论条数。存于total中。
从两条语句只有表名不一样之外,且后面一表以archive结尾,似乎系统做了LOG备份。
SELECT COUNT(*) as total FROM rb_spacecomments WHERE itemid='2753599' AND pid='0' AND audit IN (0,2,3)
No:
Error:
DB query Error.
SELECT COUNT(*) as total FROM rb_spacecomments_archive WHERE itemid='2753599' AND pid='0' AND audit IN (0,2,3)
No:
Error:
在控制理论里面,PID是比例积分微分控制的缩写
相当于提供了一部分文档给攻击者...
心配啊.
估计它还没到这程度.呵呵.
sql injection.
可能性不大.如果那样的话,不应该是0.
现在7位数说明历史上只有7位数的帖子发出来过
将来到了8位也照样能用呀
而且这种情况下archive代表的意思很多
常见的安全检测应该已经包括了这种缺陷的探测
所以一般就成功率较低
调试信息的输出是个低级错误
但大多数站点都有,通常带来的危害没有想象中大
即父id,如果pid为0说明是顶级留言(即直接留言),如果不为0则为次级留言(即留言的留言——对别人留言再进行的留言,好比论坛的引用跟帖一样)。 如果大于1则为n级留言,不过这种方式很少使用,一般直接采用链式表方式来逐级搜索,而不用直接定义。
有兴趣的可以搜索 “二叉树 先序遍历”