php二次注入:
本次主要了解什么是二次注入:
概念:攻击者构造了恶意的数据存储到数据库后,恶意数据被读取并进入到sql语句中执行,因此判定为二次注入。
主要分为两个步骤:
第一步:插入恶意数据:进行数据库插入时,对其中的特殊字符进行转义处理,在写入数据库的时候又保留了原来的数据。
第二步:引用恶意数据,程序默认认为已经存入到数据库的数据是安全的,直接从数据库中取出恶意数据,没有进行下一步的检验处理。
例子:DZ 1.5
1.在论坛留言板中填写留言:aaaaaaaaaaaa’
添加成功
2.在修改中随便输入内容,报错即可判定为二次注入,在url地址中修改mod=misc&action=postappend&tie=[当前tid]&pid=[当前pid]
进入到独立的修改页面,因为该页面没有对数据进行任何处理,可直接引用第1步中的数据带入到数据库执行。
具体操作:
1.查数据库名:留言:’,subject=(/*!select*/concat(tabasese()),comment=’)
提交
2.进入独立编辑页面后直接提交,返回到留言板可看到数据库名为discuz,因此在第1步中输入的sql语句被执行了。
3.重复1步替换sql语句查出数据
4.重复2步骤,之后一直重复1,2步骤直到查出后台账号密码为止