那些年干过的事(二)—成绩查询网站爆库及防护

背景:

某考试系统公布了考试成绩,很多朋友参加了这个考试,当时手上没有他们的考试号等信息,又比较好奇大家的成绩,一时兴起就想看看有没有方法在不知道考试号的情况下查询成绩。

目的:

获得大家的考试成绩。

条件:

网站采用php开发,数据库类型未知,表结构未知

工具及手段:

google、UE、Sqlyog、SQL注入、Eclipse

前期准备:

在网站提供的查询界面中,通过在各个输入框输入特殊字符单引号发现,输入框都做了js校验,不能使用特殊字符,想绕过js校验太简单了,url传参数或者自己构造一个html页面,我选择是使用html页面,将成绩查询页面另存为html,用ue编辑html,将无关的阶段全部删除,最重要的删除js校验部分,这样就构造了一个没有校验的html页面,然后用浏览器访问页面,输出单引号等特殊字符,试试看效果,不错果然是我们想要的结果,出现了sql的错误语句。

方法步骤:

通过观察返回的结果,我们可以知道网站采用的是mysql数据库,成绩存在与一个叫做fenshu的表中,我们可以针对页面上qname字段构造sql,对应到后台为username字段,后台执行的sql语句形如:select * from fenshu where time='2010年' and class=44 and username='12' and code='11' order by id,按照查询的话应该提供待查询人的姓名、考试号才能显示成绩,但我们可以对username进行注入同时可以将后面的语句注释掉(用--注释,/*不起作用),让其执行的sql为:

select * from fenshu where time='2010年' and class=44 and username='12'-- - and code='11' order by id(在页面qname输入框中只需要输入12'-- -就可以),这样界面中就可以显示我们要查询人12的成绩了,但只提供姓名的话如果有重名的成绩就不准确了,我们可以将所有重名人的成绩都拿出来,就是在sql中加入limit语句,qname输入框中内容变为12' limit 0,1-- -

12' limit 1,1-- -

12' limit 2,1-- -

等等,以此类推,直到页面提示错误表示这个名字没有那么人重名。如果我们只是想获取几个人的成绩的话,直接通过构造sql注入获取就可以得到成绩了,这个方法就足够了。

技能提升:

在拿到几个人的成绩后,我有了新的想法,想知道每个人的名次,在想是不是可以通过这个方法将系统中所有的成绩信息都爆出来,然后将全部信息在本地建立一个数据库,这样就可以方便的做排名统计了。

如果要爆全部数据,靠人工肯定是不行的了,需要借助程序去运行,还好本人有java开发基础,立马打开eclipse准备写代码,代码的主要步骤为:

1、构造sql

要爆全部数据就不能指定用户名了,需要将qname的值设为'or 1=1 limit i,1 -- -,其中i为变量,需要从0开始循环,至于循环到多少为止,这个就要靠猜测和尝试了,不过程序运行的很快,时间不是问题,我们可以每次爆1000个,直到爆完为止;

2、发送http请求及解析返回值

将构造的url请求通过程序发送到指定网站,并对返回值进行解析,返回的结果为html页面,我们需要在程序中对html页面进行逐行解读,识别我们的关键信息,通过字符分隔获得人名、考试号、成绩的等内容;

3、信息本地入库

在本地建立mysql数据库,按照需要建立表,将程序解析后的内容插入到本地数据库中。待全部数据都导入本地之后,就可以进行各种排名查询了。

技能再提升:

有些系统不会直接返回sql错误信息,我们就需要通过别的方式或者表结构了,在此给大家简单说说,构造如下sql:

='' union select table_name,table_schema,3,4,5 from information_schema.tables where table_schema=database() limit 6,1 --

通过变更limit后的数字,可以将目标网站数据库中的所有表名爆出来。

=''union select column_name,3,4,5,6 from information_schema.columns where table_name='fenshu' limit 1,1 --

通过变更limit后面的数字,可以将目标表的所有字段名爆出来。

解决办法:

加强url参数特殊字符过滤,增加数据库执行语句的预编译和过滤。

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入技术爱好者交流群373107565,我们一起学技术!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容