一、源码
二、分析
首先它会接两个参数一个是id一个是ps,传递的话会包含一个flag.php,然后数据库连接,之后传递过滤,然后查询,如果查到了就会取id,取出来看是不是跟adog一样,如果是它告诉你账号被锁定,如果不是展示flag
三、矛盾点
如果要进入flag你就要进入大if里面,但是要进入大if就得保证id是adog,那就走到上面账号被锁定,不满足那你就直接走到wrong.... ,总支走不到flag
四、如何解决
字符在程序中认为不是adog但是在mysql中认为是adog,跟我们前天那个文章一样,我写底下了,拼接一下就行,那我们传入的就是adogÃ,第一个大if进入了,因为在mysql中Ã被忽略了,但是第二个if,adogÃ又在代码中不等于adog,因此直接报flag
五、再看一个巩固
前面这个我们说过,看for就行,它在进行0-256的循环,然后转成chr(),之后跟hehe进行连接,比如Ã,之后demo查询的时候就会以heheÃ查,但特殊字段拼接mysql忽略,因此还是正常传
六、如何防御
前面文章我说过了,这里就不阐述了